[英]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
列中的foo
为3
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.