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直方图的第二直方图仓