如何在PySpark中将RDD列表转换为RDD行

问题描述

rdd = spark.sparkContext.parallelize(['a1','a2','a3','a4','a5',])

# convert to as follows
...,...
...,...

# show result
rdd.collect()
[Row(col='a1'),Row(col='a2'),Row(col='a3'),Row(col='a4'),Row(col='a5'),]

我知道在Java Spark中我们可以使用Row,但不能在PySpark中实现。
那么,最合适的实现方式是什么?将其转换为dict,然后将其转换为rdd

解决方法

然后导入Row包。

rdd = spark.sparkContext.parallelize(['a1','a2','a3','a4','a5',])
from pyspark.sql import Row 

rdd.map(lambda x: Row(x)).collect()

[<Row('a1')>,<Row('a2')>,<Row('a3')>,<Row('a4')>,<Row('a5')>]