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

时间:2017-03-23 18:10:24

标签: apache-spark dataframe apache-spark-sql spark-dataframe

我正在使用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 |

     

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

     

| USER1 | 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")

我该怎么做?

2 个答案:

答案 0 :(得分:2)

你可以使用withColumn函数:

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

答案 1 :(得分:1)

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

import org.apache.spark.sql.functions.typedLit
df.withColumn("attempt", typedLit(Seq("-0", "-1", "-2", "-3")))
相关问题