2016-11-13 38 views
0

我新的火花,如果開發者需要了解並行還是不明白。對開發者來說是透明的嗎?我的問題是以下。 我需要從大量的大文件記錄(通過cityID和時間戳)排序,我需要通過排序記錄在一個循環迭代,並做一定的計算。我不能因爲來自同一城市的記錄(通過時間戳)爲了對我的計算重要做組。我該如何在火花上做到這一點?
使用RDD和遍歷這意味着,我將盡一臺機器上,因爲我需要整個數據集和數據無法容納在同一臺機器上。是對的嗎?
我讀了很多關於RDDS但我仍然缺少這部分,如果什麼樣的數據不能放在同一臺機器,同樣的RDD上,我想通過所有的數據在一個循環遍歷..我是否需要控制的東西嗎?有沒有辦法在整個集羣中有一個循環?大文件火花排序,並通過整個數據集迭代

回答

0

一般:

  • 如果計算是完全順序(遍歷記錄)火花將不提供任何好處。

這裏(如果順序在由城市定義的組唯一重要的):通過城市

  • 分區數據
  • 按日期排序
  • 在每個分區上執行順序計算
+0

非常感謝,是的,訂單隻對城市很重要,你的解決方案正是我需要的。你能告訴我是否應該使用日期框架或RDD,以及選擇的理由是什麼?另外如何通過cityID進行分區?謝謝你澄清,火花將無助於完全順序的情況。 – user1041035

+0

這取決於條件。對於複雜條件可能是RDD。您可以使用自定義分區與'(城市,日期)'關鍵(有例子的SO)。對於簡單的事情'DataFrame'和窗口函數應該足夠了。 – 2016-11-13 08:04:02

+0

謝謝!從你的答案中學到了很多東西。 – user1041035