【问题标题】:pySpark Create DataFrame from RDD with Key/ValuepySpark 使用键/值从 RDD 创建 DataFrame
【发布时间】:2015-05-02 20:36:09
【问题描述】:

如果我有一个键/值的 RDD(键是列索引),是否可以将其加载到数据框中? 例如:

(0,1), (0,1), (0,2), (1,2), (1,10), (1,20), (3,18), (3,18), (3,18)

并让数据框看起来像:

1,2,18
1,10,18
2,20,18

【问题讨论】:

    标签: apache-spark pyspark


    【解决方案1】:

    是的,这是可能的(使用 Spark 1.3.1 测试):

    >>> rdd = sc.parallelize([(0,1), (0,1), (0,2), (1,2), (1,10), (1,20), (3,18), (3,18), (3,18)])
    >>> sqlContext.createDataFrame(rdd, ["id", "score"])
    Out[2]: DataFrame[id: bigint, score: bigint]
    

    【讨论】:

    • 这是否等同于rdd.toDF( ["id", "score"])?
    • 'RDD' 对象没有属性 'toDF' 。面临这个错误
    • 我使用的是 1.6 spark 和 pyspark。无法加载 sql.SQLContext 并从中创建 DataFrame。
    【解决方案2】:
    rdd = sc.parallelize([(0,1), (0,1), (0,2), (1,2), (1,10), (1,20), (3,18), (3,18), (3,18)])
    
    df=rdd.toDF(['id','score'])
    
    df.show()
    

    答案是:

    +---+-----+
    | id|score|
    +---+-----+
    |  0|    1|
    |  0|    1|
    |  0|    2|
    |  1|    2|
    |  1|   10|
    |  1|   20|
    |  3|   18|
    |  3|   18|
    |  3|   18|
    +---+-----+
    

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 2021-12-10
      • 2021-06-01
      • 1970-01-01
      • 2023-03-13
      • 2018-07-01
      相关资源
      最近更新 更多