当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python pyspark RDD.histogram用法及代码示例

本文简要介绍 pyspark.RDD.histogram 的用法。

用法:

RDD.histogram(buckets)

使用提供的存储桶计算直方图。除了最后一个是关闭的,桶都向右打开。例如[1,10,20,50] 表示桶是 [1,10) [10,20) [20,50],表示 1<=x<10, 10<=x<20, 20<=x< =50。在 1 和 50 的输入上,我们将得到 1,0,1 的直方图。

如果您的直方图是均匀分布的(例如 [0, 10, 20, 30]),则可以将每个元素的 O(log n) 插入切换为 O(1)(其中 n 是存储桶的数量)。

存储桶必须经过排序,不包含任何重复项,并且至少包含两个元素。

如果buckets 是一个数字,它将生成在 RDD 的最小值和最大值之间均匀分布的桶。例如,如果最小值为 0,最大值为 100,给定 buckets 为 2,则生成的桶将为 [0,50) [50,100]。 buckets 必须至少为 1。如果 RDD 包含无穷大,则会引发异常。如果 RDD 中的元素没有变化(max == min),则将使用单个存储桶。

返回值是一个桶和直方图的元组。

例子

>>> rdd = sc.parallelize(range(51))
>>> rdd.histogram(2)
([0, 25, 50], [25, 26])
>>> rdd.histogram([0, 5, 25, 50])
([0, 5, 25, 50], [5, 20, 26])
>>> rdd.histogram([0, 15, 30, 45, 60])  # evenly spaced buckets
([0, 15, 30, 45, 60], [15, 15, 15, 6])
>>> rdd = sc.parallelize(["ab", "ac", "b", "bd", "ef"])
>>> rdd.histogram(("a", "b", "c"))
(('a', 'b', 'c'), [2, 2])

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.RDD.histogram。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。