2016-11-13 25 views
0

我新的火花,如果开发者需要了解并行还是不明白。对开发者来说是透明的吗?我的问题是以下。 我需要从大量的大文件记录(通过cityID和时间戳)排序,我需要通过排序记录在一个循环迭代,并做一定的计算。我不能因为来自同一城市的记录(通过时间戳)为了对我的计算重要做组。我该如何在火花上做到这一点?
使用RDD和遍历这意味着,我将尽一台机器上,因为我需要整个数据集和数据无法容纳在同一台机器上。是对的吗?
我读了很多关于RDDS但我仍然缺少这部分,如果什么样的数据不能放在同一台机器,同样的RDD上,我想通过所有的数据在一个循环遍历..我是否需要控制的东西吗?有没有办法在整个集群中有一个循环?大文件火花排序,并通过整个数据集迭代

回答

0

一般:

  • 如果计算是完全顺序(遍历记录)火花将不提供任何好处。

这里(如果顺序在由城市定义的组唯一重要的):通过城市

  • 分区数据
  • 按日期排序
  • 在每个分区上执行顺序计算
+0

非常感谢,是的,订单只对城市很重要,你的解决方案正是我需要的。你能告诉我是否应该使用日期框架或RDD,以及选择的理由是什么?另外如何通过cityID进行分区?谢谢你澄清,火花将无助于完全顺序的情况。 – user1041035

+0

这取决于条件。对于复杂条件可能是RDD。您可以使用自定义分区与'(城市,日期)'关键(有例子的SO)。对于简单的事情'DataFrame'和窗口函数应该足够了。 – 2016-11-13 08:04:02

+0

谢谢!从你的答案中学到了很多东西。 – user1041035