![](/img/trans.png)
[英]How to split list of dictionary in one column into two columns in pyspark dataframe?
[英]PySpark: How to Split a Column into 3 Columns
我有一个如下的火花数据框,并希望将列按空间分成 3 个。
+------------+
| text|
+------------+
| aaa bb ccc|
+------------+
| aaa bb c d|
+------------+
| aa b|
+------------+
下面是预期的结果。 第一项保留在 text1 列中,第二项转到 text2,其余全部转到 text3(如果有)。 原始列值可能有空记录或带有任意数量分隔符的值,即空格“”。
+------------+-----+-----+-----+
| text|text1|text2|text3|
+------------+-----+-----+-----+
| aaa bb ccc| aaa | bb | ccc |
+------------+-----+-----+-----+
| aaa bb c d| aaa | bb | c d |
+------------+-----+-----+-----+
| aa b| aa | b | null|
+------------+-----+-----+-----+
| aa | aa |null | null|
+------------+-----+-----+-----+
| | null|null | null|
+------------+-----+-----+-----+
提前致谢!
您可以使用split
功能。
arr_cols = [F.split('text', ' ', 3)[i].alias('text' + str(i+1)) for i in range(3)]
df = df.select('text', *arr_cols)
df.show(truncate=False)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.