【问题标题】:huge files spark sort and iterate through the whole data set巨大的文件激发排序并遍历整个数据集
【发布时间】:2016-11-13 04:56:00
【问题描述】:

我是 spark 新手,但仍然不明白开发人员是否需要了解并行性。对开发人员是否透明。我的问题如下。 我需要从大量大文件中对记录进行排序(按 cityID 和时间戳),并且我需要在循环中遍历排序的记录并进行某些计算。我不能分组,因为来自同一城市的记录顺序(按时间戳)对我的计算很重要。我怎样才能在火花中做到这一点?
使用 RDD 并对其进行迭代意味着我将在一台机器上完成所有工作,因为我需要整个数据集,而数据不能放在同一台机器上。是对的吗?
我读了很多关于 RDD 的文章,但我仍然错过了这一部分,如果数据不能放在同一台机器、相同的 RDD 上并且我想在一个循环中遍历所有数据.. 我需要控制什么吗?有没有办法在集群中建立一个循环?

【问题讨论】:

    标签: loops apache-spark


    【解决方案1】:

    一般:

    • 如果计算是完全顺序的(循环记录),Spark 将不会提供任何优势。

    这里(如果顺序仅在按城市定义的组中很重要):

    • 按城市划分数据
    • 按日期排序
    • 对每个分区执行顺序计算

    【讨论】:

    • 非常感谢,是的,订单只对城市很重要,您的解决方案正是我所需要的。你能告诉我是否应该使用日期框架或 RDD 以及选择的理由是什么?另外我如何按cityID分区?感谢您澄清火花对完全连续的情况没有帮助。
    • 这取决于条件。对于复杂的条件可能是 RDD。您可以使用以(city, date) 作为键的自定义分区器(SO 上有示例)。对于简单的事情DataFrame 和窗口函数应该足够了。
    • 谢谢!从您的回答中学到了很多。
    猜你喜欢
    • 2012-04-21
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    相关资源
    最近更新 更多