【问题标题】:Convert PipelinedRDD to dataframe将 PipelinedRDD 转换为数据框
【发布时间】:2017-12-10 23:30:47
【问题描述】:

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

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】:

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

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

    spark = SparkSession.builder.getOrCreate()
    
    rdd = spark.sparkContext.textFile()
    newRDD = rdd.map(...)
    df = newRDD.toDF() or newRDD.toPandas()
    

    【讨论】:

    • SparkSession 在 Spark 1.6 中不可用。 SparkSession 仅在 Spark 2.0 中可用。我无法升级到 Spark 2.0
    猜你喜欢
    • 2020-04-15
    • 2011-05-16
    • 2022-01-20
    • 2018-02-16
    • 2017-12-17
    • 2021-03-25
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多