繁体   English   中英

spark withcolumn创建一个列,从现有列中复制值

[英]spark withcolumn create a column duplicating values from existining column

我在解决这个问题。 这是一个问题陈述,可以说我有一个数据框,我想为c列选择值,其中b列的值为foo并创建一个新列D,并对所有行重复谷值“ 3”

+---+----+---+
|  A|   B|  C|
+---+----+---+
|  4|blah|  2|
|  2|    |  3|
| 56| foo|  3|
|100|null|  5|
+---+----+---+

want it to become:
+---+----+---+-----+
|  A|   B|  C|  D  |
+---+----+---+-----+
|  4|blah|  2|  3  |
|  2|    |  3|  3  |
| 56| foo|  3|  3  |
|100|null|  5|  3  |
+---+----+---+-----+

您将必须提取C列的值,即B列中的foo3

import org.apache.spark.sql.functions._
val value = df.filter(col("B") === "foo").select("C").first()(0)

然后使用withColumn值使用lit函数创建新的列D

df.withColumn("D", lit(value)).show(false)

您应该获得所需的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM