Python 标记pyspark dataframe列并在新列中进行排序

Python 标记pyspark dataframe列并在新列中进行排序,python,dataframe,pyspark,Python,Dataframe,Pyspark,我有一个PySpark数据框,它有一个字符串列,其中包含一个逗号分隔的值列表(最多5个值),如下所示: +----+----------------------+ |col1|col2 | +----+----------------------+ |1 | 'a1, b1, c1' | |2 | 'a2, b2' | |3 | 'a3, b3, c3, d3, e3' | +----+------------

我有一个PySpark数据框,它有一个字符串列,其中包含一个逗号分隔的值列表(最多5个值),如下所示:

+----+----------------------+
|col1|col2                  |
+----+----------------------+
|1   | 'a1, b1, c1'         |
|2   | 'a2, b2'             |
|3   | 'a3, b3, c3, d3, e3' |
+----+----------------------+
我想标记化
col2
,并在
col2
中创建5个不同的列,如果标记化返回的值少于5个,则可能使用空值:

+----+----+----+----+----+----+
|col1|col3|col4|col5|col6|col7|
+----+----+----+----+----+----+
|1   |'a1'|'b1'|'c1'|null|null|
|2   |'a2'|'b2'|null|null|null|
|3   |'a3'|'b3'|'c3'|'d3'|'e3'|
+----+----+----+----+----+----+

任何帮助都将不胜感激。

只需拆分该列并选择

df.withColumn('col2', split('col2', ', ')) \
  .select(col('col1'), *[col('col2')[i].alias('col' + str(i + 3)) for i in range(0, 5)]) \
  .show()

+----+----+----+----+----+----+
|col1|col3|col4|col5|col6|col7|
+----+----+----+----+----+----+
|   1|  a1|  b1|  c1|null|null|
|   2|  a2|  b2|null|null|null|
|   3|  a3|  b3|  c3|  d3|  e3|
+----+----+----+----+----+----+

谢谢@Lamanus。它起作用了。在将令牌存储到新列之前,我需要执行某种排序。我在这里增加了一个新问题:你能看一下吗?谢谢