我想知道是否可以将字符串类型的“数据”列更改为数组类型,但数字之间用逗号分隔。
#+----------+---------------------+------------+
#|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函数,并且该函数可用于数组。
谢谢。
答案 0 :(得分:0)
是的,具有自定义功能(UDF):
df = df.withColumn("data", F.udf(lambda x: x.split(','))('data'))