簡體   English   中英

Scala DataFrame,將非空列的值復制到新列中

[英]Scala DataFrame, copy value of non null column into a new column

我有一個 Scala DataFrame 並想向它添加一個新列,使其值基於非空的兩列中的任何一列。 例如,在下表中,col1 和 col2 是我想要添加新列的列,如果 col1 為空,那么新列的值來自 col2,反之亦然。 col1 和 col2 之一將始終具有非空值。 我只需要在 Scala 中執行此操作而不使用 SQL。 提前感謝您的任何幫助。

 <table><tbody><tr><th>Col1</th><th>Col2</th><th>Col3</th></tr><tr><td>11</td><td>null</td><td>Value13</td></tr><tr><td>null</td><td>22</td><td>Value23</td></tr><tr><td>32</td><td>32</td><td>Value33</td></tr></tbody></table>

這是我可以嘗試的最好的方法,但它不起作用。

df.withColumn("Col", df.Col1.isNull() ? df.Col2: df.Col1)

嘗試使用when函數:

df.withColumn("Col", when(col("Col1").isNull(), col("Col2")).otherwise(col("Col1")))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM