关于Spark中Scala中的DataFrame,我可能有一个简单而又快速的问题。
我有一个现有的Spark DataFrame(可与Scala 2.10.5和Spark 1.6.3一起使用),并且想添加一个具有ArrayType或MapType的新列,但不知道如何实现。但是不知道该如何处理。我不想使用“单个”值创建多个列,而是将它们存储在一个列中。这样会缩短我的代码,并使它更容易更改。
import org.apache.spark.sql.types.MapType
...
// DataFrame initial creation
val df = ...
// adding new columns
val df_new = df
.withColumn("new_col1", lit("something_to_add") // add a literal
.withColumn("new_col2"), MapType("key1" -> "val1", "key2" -> "val2")) // ???
答案 0 :(得分:1)
您可以尝试
val df_new = df
.withColumn("new_col1", lit("something_to_add") // add a literal
.withColumn("new_col2"), typedLit[Map[String, String]](Map("key1" -> "val1"), ("key2" -> "val2")))