Spark将包含元组的列添加到数据帧
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark将包含元组的列添加到数据帧相关的知识,希望对你有一定的参考价值。
我正在使用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")
我怎么做?
答案
你可以使用withColumn函数:
import org.apache.spark.sql.functions._
df.withColumn("attempt", lit(Array("-0","-1","-2","-3")))
另一答案
您可以使用typedLit添加(Spark版本> 2.2)。
import org.apache.spark.sql.functions.typedLit
df.withColumn("attempt", typedLit(Seq("-0", "-1", "-2", "-3")))
以上是关于Spark将包含元组的列添加到数据帧的主要内容,如果未能解决你的问题,请参考以下文章
过滤包含Scala Spark数据帧中数组的列中的数组长度[重复]
如何将列添加到依赖于数据帧或外部数据帧中组的平均值的数据帧?
在 Spark 2.4 中使用正则表达式替换向数据帧输出添加空值