我想創建一個列用作連接內部的連接鍵,例如:
df1.join(df2
.withColumn('NewDF2Column', SOME_OPERATION)),
df1['key'] = df2['NewDF2Column'], how = 'left'))
PySpark 永遠找不到用作連接鍵的 NewDF2Column。如果我首先在另一個資料幀中創建它,它會起作用,但不是像這樣動態創建的。是否可以?謝謝!
uj5u.com熱心網友回復:
資料框是不可變的,這意味著您每次都需要重新分配變數以從中獲取結果。在這種情況下,您正在創建操作NewDF2Column的第一個引數join,但您NewDF2Column再次參考的第二個引數無法看到之前所做的更改。如何解決?
第一個選項
# Creating before joining
df2 = df2.withColumn('NewDF2Column', SOME_OPERATION)
output_df = df1.join(df2, df1['key'] = df2['NewDF2Column'], how='left')
第二種選擇
# Creating a column to join with the same name as df1
output_df = df1.join(df2.withColumn('key', SOME_OPERATION), on='key', how='left')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/332705.html
下一篇:使用膩子找不到目錄火花
