Spark将包含元组的列添加到数据帧

问题描述 投票:1回答:2

我正在使用Spark 1.6,我想在数据帧中添加一列。新列实际上是一个常数序列:Seq(“ - 0”,“ - 1”,“ - 2”,“ - 3”)

这是我的原始数据框:

scala> df.printSchema()

根 | - user_name:string(nullable = true) | - test_name:string(nullable = true)

df.show()

| USER_NAME | TEST_NAME |

+------------+--------------------+

|用户1 | SAT |

| user9 | GRE |

| user7 | MCAT |

我想添加这个额外的列(尝试),以便新的数据帧变为:

|user_name|test_name|attempt|
+------------+--------------------+
|user1| SAT|Seq("-0","-1","-2","-3")|
| user9| GRE|Seq("-0","-1","-2","-3")
| user7|MCAT|Seq("-0","-1","-2","-3")

我怎么做?

apache-spark dataframe apache-spark-sql spark-dataframe
2个回答
2
投票

你可以使用withColumn函数:

 import org.apache.spark.sql.functions._
 df.withColumn("attempt", lit(Array("-0","-1","-2","-3")))

0
投票

您可以使用typedLit添加(Spark版本> 2.2)。

import org.apache.spark.sql.functions.typedLit
df.withColumn("attempt", typedLit(Seq("-0", "-1", "-2", "-3")))
© www.soinside.com 2019 - 2024. All rights reserved.