将PipelinedRDD转换为数据帧

问题描述 投票:0回答:1

我正在尝试将pyspark中的pipelinedRDD转换为数据帧。这是代码片段:

newRDD = rdd.map(lambda row: Row(row.__fields__ + ["tag"])(row + (tagScripts(row), ))) df = newRDD.toDF()

当我运行代码时,我收到此错误:

'list' object has no attribute 'encode'

我尝试了多种其他组合,例如使用以下方法将其转换为Pandas数据帧:

newRDD = rdd.map(lambda row: Row(row.__fields__ + ["tag"])(row + (tagScripts(row), ))) df = newRDD.toPandas()

但后来我收到了这个错误:

AttributeError: 'PipelinedRDD' object has no attribute 'toPandas'

任何帮助将不胜感激。感谢您的时间。

python lambda pyspark spark-dataframe rdd
1个回答
0
投票

rdd.toDF()rdd.toPandas()仅用于SparkSession

要修复您的代码,请尝试以下操作:

spark = SparkSession.builder.getOrCreate()

rdd = spark.sparkContext.textFile()
newRDD = rdd.map(...)
df = newRDD.toDF() or newRDD.toPandas()
© www.soinside.com 2019 - 2024. All rights reserved.