繁体   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