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 数据框中的列 [重复]

在 Spark 2.4 中使用正则表达式替换向数据帧输出添加空值

从 csv 文件将数据添加到现有的 apache spark 数据帧

如何将元组列表转换为 pandas 数据框,以便每个元组的第一个值代表一列?