我正在尝试将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'
非常感谢任何帮助。谢谢你的时间。
答案 0 :(得分:0)
rdd.toDF()
或rdd.toPandas()
仅用于SparkSession
。
要修复您的代码,请尝试以下操作:
spark = SparkSession.builder.getOrCreate()
rdd = spark.sparkContext.textFile()
newRDD = rdd.map(...)
df = newRDD.toDF() or newRDD.toPandas()