我有兩個 DF
df1:
--- ----- --------
|key|price| date|
--- ----- --------
| 1| 1.0|20210101|
| 2| 2.0|20210101|
| 3| 3.0|20210101|
--- ----- --------
df2:
--- -----
|key|price|
--- -----
| 1| 1.1|
| 2| 2.2|
| 3| 3.3|
--- -----
我想用where 的值替換price列值df1pricedf2df1.key == df2.key
預期輸出:
--- ----- --------
|key|price| date|
--- ----- --------
| 1| 1.1|20210101|
| 2| 2.1|20210101|
| 3| 3.3|20210101|
--- ----- --------
我在 python 中找到了一些解決方案,但我無法在 Scala 中找到可行的解決方案。
uj5u.com熱心網友回復:
只需加入 下降df1列價格:
val df = df1.join(df2, Seq("key")).drop(df1("price"))
df.show
// --- ----- --------
//|key|price| date|
// --- ----- --------
//| 1| 1.1|20210101|
//| 2| 2.2|20210101|
//| 3| 3.3|20210101|
// --- ----- --------
或者,如果您有更多條目,df1并且您想在price沒有匹配項時保留它們,df2則使用 left join coalesce 運算式:
val df = df1.join(df2, Seq("key"), "left").select(
col("key"),
col("date"),
coalesce(df2("price"), df1("price")).as("price")
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/405125.html
標籤:
