1
A
回答
1
是的,這是可以通過嵌套1D聚合聚合2D數據。一個簡單的例子是2D直方圖:
hist2d = Bin(numX, lowX, highX, lambda event: event.x,
Bin(numY, lowY, highY, lambda event: event.y))
(Python語法;替代λ-功能Scala中,等等)。第一個Bin
聚合器將數據分割爲event.x
並將其傳遞給第二個,這恰好是另一個Bin
而不是默認的Count
。
但是你說「模擬groupBy/SQL的聚集」。 GROUP BY一個整數的bin號碼可以使用SQL查詢作爲直方圖,在這種情況下,Histogrammar例子只是一個更簡單的方法。但是,當人們在SQL中使用GROUP BY時,他們通常按某些分類數據(例如字符串)進行分組。
在Histogrammar,這將是
groupedHists = Categorize(lambda event: event.category,
Bin(num, low, high, lambda event: event.numerical))
這裏,Categorize
需要的Bin
的地方,使一個新的子聚合爲每個唯一的字符串。
最後,如果您使用的類別數量過多,則可能需要使用底層系統(例如Spark)的map-reduce功能來執行按鍵聚合。如果Histogrammar做到這一點,Spark會隨機發送數據給N個工作人員,每個工作人員收集所有類別的數據,然後將其合併。如果Spark做到這一點,Spark會將給定類別的所有數據發送給同一個工作人員,整體使用較少的內存並使合併更容易。
這裏是groupedHists
在星火高效的版本(斯卡拉):
val groupedHists =
rdd.map(event => (event.category, event))
.aggregateByKey(Bin(num, low, high, {event: Event => event.numerical}))
(new Increment, new Combine)
.collect
這會給你如上雙,而不是合併範疇分箱直方圖,但它是相同的信息。
相關問題
- 1. Colorbar二維直方圖Python
- 2. 聚合直方圖數據
- 3. 生成「二維」直方圖中的R
- 4. matplotlib極地二維直方圖
- 5. 繪製直方圖與二維數組
- 6. 如何繪製二維直方圖?
- 7. R中的二維聚合體? (創建熱圖)
- 8. 將二維直方圖保存爲python中的熱圖
- 9. 從Python中的數組得到二維和三維散點圖直方圖
- 10. Tensorflow中的多維聚合
- 11. 在matplotlib中繪製二維直方圖作爲熱圖
- 12. 請詳細解釋Python中的二維直方圖
- 13. OpenCL中的快速二維直方圖與PyOpenCL
- 14. 如何在ipython中創建二維數組的直方圖
- 15. 如何在R中合併兩個或多個二維直方圖?
- 16. 如何從R中的聚合數據創建直方圖?
- 17. CUDA中的粒子細胞計數(一維和二維直方圖生成)
- 18. 在二維直方圖中出現點沒有點
- 19. 二維聚類算法
- 20. MATLAB中一維的直方圖
- 21. Ruby的優化實現直方圖/聚合的
- 22. 使用MATLAB按頻率着色的二維直方圖
- 23. 如何在Matlab中繪製歸一化的RGB圖像的二維直方圖
- 24. Matplotlib二維繪圖垂直x軸
- 25. Elasticsearch在一段時間內的日期直方圖聚合
- 26. 如何創建加權二維直方圖
- 27. 用rootpy和matplotlib繪製二維直方圖
- 28. 多維直方圖,其中R
- 29. 如何在Python中的每個二維直方圖中獲取最大值
- 30. Matplotlib直方圖的第二直方圖倉