問題
你的筆記本上有兩張表。您執行一個連接。您可以預覽輸出,但當您嚐試全部結果下載你會得到一個錯誤。
錯誤在SQL語句:AnalysisException: Found duplicate column(s)當插入到dbfs:/ databicks -results/
複製錯誤
- 創建兩個表。
從pyspark.sql.functions導入* df = spark.range(12000) df = df. withcolumn ("col2",lit("test")) df. createorreplacetempview ("table1") df1 = spark.range("table2")
- 在表上執行左外部連接。
select * from table1 t1 left join table2 t2 on t1。id = t2.id
- 點擊下載預覽.CSV文件下載完成。
- 點擊全部結果下載.產生錯誤。
導致
- 下載預覽之所以能夠正常工作,是因為這是在瀏覽器中運行的僅前端操作。沒有檢查任何約束,CSV文件中隻包含1000行。
- 全部結果下載在Apache Spark中重新執行查詢,並在內部寫入CSV文件。當連接操作後發現重複的列時,會發生錯誤。
解決方案
選項1
如果選擇所有必需的列,並在聯接操作後避免重複列,則不會得到錯誤,並可以下載完整的結果。
% sql select t1。id、t1。Col2 from table1 t1 left join table2 t2 on t1。id = t2.id
選項2
可以使用數據幀來防止列重複。如果連接操作之後沒有重複的列,則不會得到錯誤,可以下載完整的結果。
%python result_df = df。加入(df1 (" id "),“左”)顯示(result_df)