如何使用scala中的withColumn函数将可变列表添加为数据帧的列

如何使用scala中的withColumn函数将可变列表添加为数据帧的列,scala,apache-spark,Scala,Apache Spark,实际上,我正在使用scala的with column函数从现有数据帧中的可变列表中添加一个新列,有人能帮忙吗 这正是我想做的,但对我来说不起作用 val list1=mutable.MutableList[String]() val list2=mutable.MutableList[String]() list1+=convertIntToStringBase(30,account,9) // Applying some transformation to list1 DF.withCol

实际上,我正在使用scala的with column函数从现有数据帧中的可变列表中添加一个新列,有人能帮忙吗

这正是我想做的,但对我来说不起作用

val list1=mutable.MutableList[String]()
val list2=mutable.MutableList[String]()
list1+=convertIntToStringBase(30,account,9)  // Applying some transformation to list1 
DF.withColumn("New_col",lit(list1))   // Adding the elements of the list as a new column in a dataframe

错误消息:

Exception in thread "main" java.lang.RuntimeException: Unsupported literal type class scala.collection.mutable.MutableList MutableList

提前谢谢

您可以在Spark 2.2 typedLit中找到支持Seq、Map和tuple的代码

  import org.apache.spark.sql.functions.typedLit
    
    df.withColumn("some_array", typedLit(Seq(1, 2, 3)))
    df.withColumn("some_struct", typedLit(("foo", 1, 0.3)))
    df.withColumn("some_map", typedLit(Map("key1" -> 1, "key2" -> 2)))

感谢您的回答,但我只是想简单地将一维列表的元素转换为数据框架的一列,上面的代码似乎与我的用例无关