[英]Spark scala join dataframe within a dataframe
我有一個要求,我需要連接數據框 A 和 B 並計算一列,並在具有不同連接條件的相同 2 個數據框之間的另一個連接中使用該計算值。
例如:
DF_Combined = A_DF.join(B_DF,'Join-Condition',"left_outer").withColumn(col1,'value')
完成上述操作后,我需要進行相同的連接,但使用上一個連接中計算的值。
DF_Final=A_DF.join(B_DF,'New join COndition',"left_outer").withcolumn(col2,DF_Combined.col1*vol1*10)
當我嘗試這樣做時,我遇到了笛卡爾積問題。
您不能使用 dataframe 中不存在的列。 我的意思是,當您在生成的 dataframe 中執行A_DF.join(B_DF,...
時,您只有A_DF
和B_DF
的列。如果您想擁有新列 - 您需要使用DF_Combined
。
根據您的問題,我相信您不需要再次加入,但您有 2 個可能的選擇: 1. 當您第一次加入時 - 在這個地方計算vol1*10
。 2.加入后做DF_Combined.withColumn...
但請記住 - withColumn(name, expr)
創建一個name
設置值為expr
結果的列。 所以.withcolumn(DF_Combined.col1,vol1*10)
沒有意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.