如何在pyspark中拆分包含正斜杠的列表

问题描述

嗨,我有一个如下列表

    [(datetime.datetime(2020,8,20,19,40,27,tzinfo=tzlocal()),'AAA/v1/b1/c1/text.txt'),(datetime.datetime(2020,14,48,28,'BBB/v2/b2/c2/text1.txt')]

我如何分割,所以输出如下所示

       Timestamp                V     B     C       T
       2020/8/20 19:40:27       v1    b1    c1      text.txt
       2020/8/20 14:48:28       v2    b2    c2      text1.txt

解决方法

映射列表以拆分元素并创建数据框。

ll = [(11,'AAA/v1/b1/c1/text.txt'),(22,'BBB/v2/b2/c2/text1.txt')]
ll = list(map(lambda x: (x[0],*x[1].split('/')[1:]),ll))
cc= ['Timestamp','V','B','C','T']

df = spark.createDataFrame(ll,cc)
df.show(10,False)

+---------+---+---+---+---------+
|Timestamp|V  |B  |C  |T        |
+---------+---+---+---+---------+
|11       |v1 |b1 |c1 |text.txt |
|22       |v2 |b2 |c2 |text1.txt|
+---------+---+---+---+---------+