错误当下载完整的结果后加入

如果你有重复的列加入后,你会得到一个错误当试图下载完整的结果。

写的manjunath.swamy

去年发表在:2022年5月23日

问题

你正在与两个表在一个笔记本上。你执行连结。你可以预览输出,但当你尝试全部结果下载你得到一个错误。

错误的SQL语句:AnalysisException:发现重复的列(s)当插入dbfs: / databricks-results /

复制错误

  1. 创建两个表。
    %从pyspark.sql python。功能导入* df = spark.range (12000) df = df.withColumn (“col2”,点燃(“测试”))df.createOrReplaceTempView(“表1”)df1 = spark.range (5) df1.createOrReplaceTempView(表二)
  2. 对表执行左外连接。
    %的sql select * from table1 t1离开加入表t2在t1。id = t2.id
  3. 点击下载预览。一个CSV文件下载。
  4. 点击全部结果下载。生成一个错误。

导致

  • 下载预览只因为这是一个前端操作在浏览器中运行。没有约束检查和CSV文件仅包含了1000行。
  • 全部结果下载重新执行查询内部在Apache火花和CSV文件。错误发生在连接操作后发现重复的列。

解决方案

选项1

如果您选择所需的所有列,和避免重复列连接操作之后,你就不会得到错误并可以下载完整的结果。

% sql select t1。id、t1。col2从表t1左加入表t2在t1。id = t2.id

选项2

您可以使用DataFrames防止复制列。如果没有重复列连接操作之后,你就不会得到错误并可以下载完整的结果。

% python result_df = df。加入(df1 (" id "),“左”)显示(result_df)


这篇文章有用吗?