pyspark-histogram詳解

來源:互聯網
上載者:User

最近學習Spark,我主要使用pyspark api進行編程,

網路上中文的解釋不是很多,api官方文檔也不是很容易明白,我結合自己的理解記錄下來,方便別人蔘考,也方便自己回顧吧

本次介紹的是 pyspark.RDD.histogram

histogram(buckets)

輸入參數buckets可以是一個數字,也可以是一個列表

輸出結果為一個元組,元組包含兩個列表分別是桶和長條圖

例如:對一個0到50的序列組成的列表,

buckets是數字時

>>> rdd = sc.parallelize(range(51))>>> rdd.histogram(2)([0, 25, 50], [25, 26])
參數buckets是2,輸出兩部分,[0,25,50]是 ,[25,26]是各個桶分布內的 頻數

buckets是列表時

>>> rdd.histogram([0, 5, 25, 50])([0, 5, 25, 50], [5, 20, 26])
參數buckets是[0,5,25,50],輸出兩部分,[0,5,25,50]是桶,[5,20,26]是各個桶分布內的頻數

>>> rdd = sc.parallelize(["ab", "ac", "b", "bd", "ef"])>>> rdd.histogram(("a", "b", "c"))(('a', 'b', 'c'), [2, 2])

總結以下幾點:

1、histogram 用來根據給定的參數buckets,計算長條圖分布結果, buckets參數可以是一個數字,也可以是一個列表

2、所有長條圖的結果集合區間右邊是開區間,最後一個區間除外

      例如 : 結果[0,25, 50] 表示的桶結果是 [0,25),[25,50],   即,0 <= x < 25, 25 <= x <= 50

3、桶必須是排好序的, 並且不包含重複元素, 至少有兩個元素

      例如: 結果[0,25,50]是從小到大有序的,且至少包含兩個元素

4、如果參數buckets是一個數字,它會產生一個由RDD的最大值和最小值之間均勻分布的桶,

      例如: 如果最小值是0, 最大值是100, 給定buckets等於2,桶的結果是[0,50),[50,100]

      如果RDD包含無窮大,buckets必須至少是1

      如果RDD中的元素不變,min等於max, 總是返回一個桶

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.