python - pyspark : Convert DataFrame to RDD[string]

标签 python apache-spark dataframe pyspark apache-spark-sql

我想将 pyspark.sql.dataframe.DataFrame 转换为 pyspark.rdd.RDD[String]

我将 DataFrame df 转换为 RDD data:

data = df.rdd
type (data)
## pyspark.rdd.RDD 

新的 RDD data 包含 Row

first = data.first()
type(first)
## pyspark.sql.types.Row

data.first()
Row(_c0=u'aaa', _c1=u'bbb', _c2=u'ccc', _c3=u'ddd')

我想将 Row 转换为 String 列表,如下例所示:

u'aaa',u'bbb',u'ccc',u'ddd'

谢谢

最佳答案

PySpark Row 只是一个 tuple 并且可以这样使用。您在这里只需要一个带有 list 的简单 map(或者 flatMap,如果您还想展平行):

data.map(list)

或者如果您期望不同的类型:

data.map(lambda row: [str(c) for c in row])

关于python - pyspark : Convert DataFrame to RDD[string],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35457927/

相关文章:

pandas - 有条件地用其他行值填充空行值

python - 如何使用包含列表值的列将多个 DataFrame 行合并为 1

python - 从 jwt 获取注册算法

java - 流式传输 7-zip 存档中的文件

python - Pandas:使用 groupie 的平行图

scala - 错误 ContextCleaner : Error in cleaning thread

apache-spark - pySpark 使用键/值从 RDD 创建数据帧

c# - 从 C# 执行 Python 脚本

apache-spark - 什么是 "Pre-build with user-provided Hadoop"包

r - 数据帧上的 format(..., justify = "left") 是否也会左对齐列名称?