【问题标题】:PySpark Suggestion on how to organize RDDPySpark 关于如何组织 RDD 的建议
【发布时间】:2015-05-20 00:12:03
【问题描述】:

我是 Spark 新手,我正在尝试在 Spark 上测试一些东西,看看我使用的数据大小是否有任何性能提升。

我的 rdd 中的每个对象都包含时间、id 和位置。

我想比较具有相同 id 的相同时间组的位置。因此,我将首先运行以下命令以按 id 分组

grouped_rdd = rdd.map(lambda x: (x.id, [x])).groupByKey()

然后我想把它分解成每个对象的时间。

有什么建议吗?谢谢!

【问题讨论】:

    标签: apache-spark rdd


    【解决方案1】:

    首先,如果你希望idtime都作为key,只需将它们都放入key部分,而不是先按id分组,然后分别按时间分组。

    m = sc.parallelize([(1,2,3),(1,2,4),(2,3,5)])
    n = m.map(lambda x: ((x[0], x[1]), x[2]))
    

    其次,Avoid GroupByKey 表现不佳并尽可能使用combineByKeyreduceByKey

    【讨论】:

    • 非常感谢您的回复。我将如何同时按idtime 分组? grouped_rdd = rdd.map(lambda x: ((x.id, x.time), [x]))?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多