我想保持隻有一列加入dataframes使用。使用select()加入後似乎並不直接,因為真實的數據可能會有很多列或列名稱可能不被人知道的。下麵一個簡單的例子
llist =[(“鮑勃”,“2015-01-13”,4),(“愛麗絲”,“2015-04-23”,10)]地區指定基金= sqlContext.createDataFrame (llist,(“名字”,“日期”,'時間'])打印ddf.collect () up_ddf = sqlContext。createDataFrame([(“愛麗絲”,100年),(“鮑勃”、23)],[“名稱”,“上傳”]) 這讓“名稱”列當我們隻需要一個!df =地區指定基金。加入(up_ddf ddf.name = = up_ddf.name)打印ddf.collect()顯示(ddf.select (ddf.name, ddf.duration / ddf.upload .alias (duration_per_upload)))
執行上麵顯示導致一個模棱兩可的名字錯誤:
org.apache.spark.sql。AnalysisException:引用“名字”是模棱兩可的,可以是:名字# 8484,# 8487。
錯誤可以避免通過使用從右手dataframe up_ddf.name加入
ddf.select (up_ddf.name……
但是似乎尷尬。有沒有更好的方法加入兩個dataframes和隻有一個“名稱”列?