【问题标题】:Error while converting pipelined RDD to Dataframe in pyspark [duplicate]在pyspark中将流水线RDD转换为Dataframe时出错[重复]
【发布时间】:2018-06-10 00:50:21
【问题描述】:

我正在尝试将以下流水线 RDD 转换为数据帧。

流水线 RDD -> user_rdd

['new_user1',
 'new_user2',
 'Onlyknows',
 'Icetea',
 '_coldcoffee_']

我尝试使用以下代码进行转换

schema = StructType([StructField('Username', StringType(), True)])
user_df = sqlContext.createDataFrame(user_rdd,schema)
mention_df.show(20)

我收到以下错误:

ValueError: Unexpected tuple 'new_user1' with StructType

我也尝试使用 toDF():

user_df=user_rdd.toDF()

这次遇到的错误是:

TypeError: Can not infer schema for type: <type 'str'>

如果有办法使用 pyspark 将其转换为数据框,请告诉我。

【问题讨论】:

    标签: python apache-spark dataframe pyspark rdd


    【解决方案1】:

    你的 rdd 是一个字符串列表,本质上是一维数据;一个数据帧需要二维数据;将 rdd 中的每个元素转换为元组应该可以解决问题:

    user_df = sqlContext.createDataFrame(user_rdd.map(lambda x: (x,)), schema)
    #                                             ^^^^^^^^^^^^^^^^^^^  
    user_df.show()
    +------------+
    |    Username|
    +------------+
    |   new_user1|
    |   new_user2|
    |   Onlyknows|
    |      Icetea|
    |_coldcoffee_|
    +------------+
    

    【讨论】:

    • 优秀。太感谢了。成功了!!!
    • @shankarBalu 很高兴它有帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-09-10
    • 2021-06-29
    • 2018-09-14
    • 2016-05-29
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多