我在spark应用程序中创建了一个jsontype输出列—我需要将动态列列表作为参数传递给json函数—我可以使用函数的静态列表来实现这一点,但不能作为应用程序的参数。请参考工作代码
工作代码
val df2 = df.withColumn("newcol",lit(to_json(struct("c1","c2","c3"))))
非工作代码
val columnList = "c1,c2,c3"
val df2 = df.withColumn("newcol",lit(to_json(struct(columnList)))) // using variable to pass the columns
你能帮我解决这个问题吗?
提前谢谢。
1条答案
按热度按时间pokxtpni1#
您可以尝试:
val columnList = "c1,c2,c3"
val df2 = df.withColumn("newcol", to_json(struct(columnList.split(",").map(col): _*)))