apache-spark - Pyspark:如何计算RDD中每个等距离间隔的数量
问题描述
我有一个RDD[Double]
,我想将它们RDD
分成k
相等的间隔,然后计算 RDD 中每个相等距离间隔的数量。
例如,RDD
就像[0,1,2,3,4,5,6,6,7,7,10]
. 我想把它分成10
相等的间隔,所以间隔是[0,1), [1,2), [2,3), [3,4), [4,5), [5,6), [6,7), [7,8), [8,9), [9,10]
.
如您所见,RDD 的每个元素都将位于其中一个区间内。然后我想计算每个间隔的数量。在这里, 中有一个元素[0,1),[1,2),[2,3),[3,4),[4,5),[5,6)
,并且两者[6,7)
和[7,8)
都有两个元素。[9,10]
有一个元素。
最后我期待一个像array([1,1,1,1,1,1,2,2,0,1]
.
解决方案
尝试这个。我假设范围的第一个元素是包容性的,最后一个是排斥性的。请对此进行确认。例如,当考虑范围 [0,1] 且元素为 0 时,条件是元素 >= 0 且元素 < 1。
for index_upper, element_upper in enumerate(array_range):
counter = 0
for index, element in enumerate(rdd.collect()):
if element >= element_upper[0] and element < element_upper[1] :
counter +=1
countElementsWithinRange.append(counter)
print(rdd.collect())
# [0, 1, 2, 3, 4, 5, 6, 6, 7, 7, 10]
print(countElementsWithinRange)
# [1, 1, 1, 1, 1, 1, 2, 2, 0, 0]
推荐阅读
- android - 如何根据 Places API 返回的结果相应地缩放 Google 地图?
- javascript - 如何通过文本输入将数据添加到 localStorage 并通过另一个文本输入调用它?
- python - Pandas to_sql 参数和性能
- xpath - XPath:获取没有特定@class 或@id 名称的所有元素
- flutter - 如何使用列表视图构建器将检索到的数据从表单页面构建到另一个页面
- java - Opencsv - 如何仅在双引号之外获取用逗号分隔的值,同时忽略双引号?
- c# - 表单提交给 Action 时模型为空
- android - 毕加索图像加载 https 与自签名证书
- php - php中允许的最大文件大小复制功能是什么
- node.js - Mongodb插入50M文档而不重复的最佳方法