我想保持隻有一列加入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和隻有一個“名稱”列?
這是在磚火花的常見問題:
http://docs.m.eheci.com/spark/latest/faq/join-two-dataframes-duplicated-column.html
我們會保持更新!
我跟著同樣的方式在上麵的文章。但沒有為我工作。
df1 & df2都相同的列集1006計數。結果與2012年創建列。
scala > df1。加入(df2 Seq (“file_name”、“post_evar30”))
res24: org.apache.spark.sql。DataFrame = [file_name:字符串,post_evar30:字符串…2012多個字段)
404 - >沒有保持本文彙報。