pyspark:如何计算rdd中每个等距间隔的数量

y0u0uwnf  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(416)

我有一个 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] .

whitzsjs

whitzsjs1#

试试这个。我假设范围的第一个元素是包含的,最后一个元素是独占的。请确认一下。例如,当考虑范围[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]

相关问题