我想知道是否可以将String类型的“ data”列更改为数组类型,但数字之间用逗号分隔。
#+----------+---------------------+------------+
#|date |month |data |
#+----------+---------------------+------------+
#|2015 |08 |01001111 |
#|2016 |06 |011111101 |
#|2017 |02 |0101011100 |
#|2018 |11 |01101111 |
#+----------+---------------------+------------+
我需要下一个:
#+----------+---------------------+------------------------+
#|date |month |data |
#+----------+---------------------+------------------------+
#|2015 |08 | [0,1,0,0,1,1,1,1] |
#|2016 |06 | [0,1,1,1,1,1,1,0,1] |
#|2017 |02 | [0,1,0,1,0,1,1,1,0,0] |
#|2018 |11 | [0,1,1,0,1,1,1,1] |
#+----------+---------------------+------------------------+
之所以需要此更改,是因为我必须使用posexplode函数,并且它可以与数组一起使用。
提前感谢。
是,具有自定义功能(UDF):
df = df.withColumn("data", F.udf(lambda x: x.split(','))('data'))