当前位置: 首页 > 知识库问答 >
问题:

Spark将由元组组成的列添加到数据帧

丁钟展
2023-03-14

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

这是我的原始数据帧:

scala> df.printSchema()

root--user\u name:string(nullable=true)
|--test\u name:string(nullable=true)

df.show()

|user_name|test_name|

------------ --------------------

|user1|SAT|

|用户9 | GRE|

|用户7 | 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")

我该怎么做?

共有2个答案

颜啸
2023-03-14

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

import org.apache.spark.sql.functions.typedLit
df.withColumn("attempt", typedLit(Seq("-0", "-1", "-2", "-3")))
邵毅
2023-03-14

您可以使用与列函数:

 import org.apache.spark.sql.functions._
 df.withColumn("attempt", lit(Array("-0","-1","-2","-3")))
 类似资料:
  • 在有趣的功能中,当我将列表添加到其他列表时,它正在添加空列表,我可以找到原因有人可以帮助我这个程序是关于查找给定数组的不同组合

  • 我想在Sokoban游戏中保存我的玩家角色的步骤。首先我想用字符的实际位置填充一个int x和y的数组,称为“pos”。然后我想将这个数组添加到数组的ArrayList中,称为“moves”。 一个玩家位置的阵列: ArrayList为所有步骤,玩家在关卡: 如果将“int[]”放在ArrayList的尖括号内,则会出错。 如何将阵列位置添加到ArrayList移动?

  • 我试图向数组中添加一个元组(例如,2项元组)。 我得到的是: 找不到接受提供的参数的“=”的重载 提示:我试图超载每个参考书的=: ...但是没有弄对。 有什么想法吗。。。解决方案

  • 问题内容: 我试图基于一个的数据创建“ n” 。我正在检查in的Integer值,并循环执行sql语句以创建与列中一样多的“ n” 。 这是我的代码: 我需要创建“ n”,但我不知道如何在循环之前声明类型并在for内填充。 现有数据类型: 新的数据类型: 问题答案: 您可以创建一个可变列表并填充它: 但是更好的方法(不使用可变数据结构)是将整数列表 映射 到DataFrames列表中:

  • 我有下面的数据帧模式作为df.current模式,需要获得预期的模式作为df.expected模式,有没有一种方法,我可以在火花2.3实现这一点 df.current架构: df。预期架构: 示例数据: 注意:这里需要实现两件事: 为元素中的每个E、V对创建新字段SN,其值应为数组名称。例如:对于第一个数组列(ADA),SN的值=ADA 将阵列(ADA、ADW)合并为一个外部阵列(信号)

  • 问题内容: 我正在尝试向从创建的数组中添加一列。在这种情况下,它是一个数组:(行,列)。 我想添加第九列。空或零都无所谓。 问题答案: 我认为您的问题是您希望就地添加该列,但是由于存储的numpy数据的原因,它的作用是创建连接数组的副本 所以你需要保存输出: 替代方式: 我相信这三个函数(以及)之间的唯一区别是未指定when的默认行为: 假设 假设除非输入为1d,否则 如果输入为1d,则假定在添加