在下面的示例中,我想用 Dataframe B 中的相應值(如果存在)覆寫 Spark Dataframe A 中的值。有沒有辦法使用 Spark(Scala)來做到這一點?
資料框 A
ID Name Age
1 Paul 30
2 Sean 35
3 Rob 25
資料框 B
ID Name Age
1 Paul 40
結果
ID Name Age
1 Paul 40
2 Sean 35
3 Rob 25
uj5u.com熱心網友回復:
left joina and的組合使用coalesce應該可以解決問題,例如:
dfA
.join(dfB, "ID", "left")
.select(
dfA.col("ID"),
dfA.col("Name"),
coalesce(dfB.col("Age"), dfA.col("Age")).as("Age")
)
說明:對于特定的 ID some_id,有兩種情況:
- if
dfB不包含some_id: 那么左連接將產生 null fordfB.col("Age")并且coalesce將回傳我們傳遞給它的運算式的第一個非 null 值,即dfA.col("Age") - 如果
dfB包含,則將使用some_idfrom 的值dfB.col("Age")。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/465521.html
