我有一个像这样的数据框:
userId someString varA varB
1 "example1" 0,2,5 1,2,9
2 "example2" 1,20,5 9,null,6
我想将数据转换为VarA和varB转换为String数组
userId someString varA varB
1 "example1" [0,2,5] [1,2,9]
2 "example2" [1,20,5] [9,null,6]
答案 0 :(得分:3)
非常简单。您可以使用sql split函数。
import org.apache.spark.sql.functions.split
df.withColumn("varA", split($"varA",",")).withColumn("varB", split($"varB",",")).show()
输出
+------+----------+----------+------------+
|userId|someString| varA| varB|
+------+----------+----------+------------+
| 1| example1| [0, 2, 5]| [1, 2, 9]|
| 2| example2|[1, 20, 5]|[9, null, 6]|
+------+----------+----------+------------+