更改列中的字符串模式以列出

时间:2019-07-08 11:03:06

标签: python pyspark

我有一个带有“ b”列的DF,其模式为“ a | b | c | ... | z”,如下所示:

from pyspark import Row
from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName('DataFrame') \
    .master('local[*]') \
    .getOrCreate()

|  a|          b|           c|    d|
+---+-----------+------------+-----+
|  1|1|2|3|4|5|6|[11, 22, 33]|[foo]|
+---+-----------+------------+-----+

我想将“ b”列更改为列表,以便下一步将其爆炸并进行其他处理,因此它应如下所示:

|  a|                 b|           c|    d|
+---+------------------+------------+-----+
|  1|[1, 2, 3, 4, 5, 6]|[11, 22, 33]|[foo]|
+---+------------------+------------+-----+

希望您能提供帮助。

1 个答案:

答案 0 :(得分:0)

感谢@giser_yugang为我的主题提供的解决方案:

from pyspark.sql.functions import split

df.withColumn("b", split("b", "\|"))