问题
你正在与两个表在一个笔记本上。你执行连结。你可以预览输出,但当你尝试全部结果下载你得到一个错误。
错误的SQL语句:AnalysisException:发现重复的列(s)当插入dbfs: / databricks-results /
复制错误
- 创建两个表。
%从pyspark.sql python。功能导入* df = spark.range (12000) df = df.withColumn (“col2”,点燃(“测试”))df.createOrReplaceTempView(“表1”)df1 = spark.range (5) df1.createOrReplaceTempView(表二)
- 对表执行左外连接。
%的sql select * from table1 t1离开加入表t2在t1。id = t2.id
- 点击下载预览。一个CSV文件下载。
- 点击全部结果下载。生成一个错误。
导致
- 下载预览只因为这是一个前端操作在浏览器中运行。没有约束检查和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)