Spark函数之histogram等数学函数 2015-08-24 21:00

histogram

该函数用于为元素类型为Double的RDD,生成画柱状图所需的数据。

该函数根据RDD中Double数值的分布特点,自动生成数据的区间,以及分布在各个区间中的数值个数。

有两种使用方式。一种是指定区间的个数,该函数自动计算出区间的范围和各个区间内的数值个数。另一种是指定各个区间的范围

比如:

对于数据系列:1.1, 1.2, 1.3, 2.0, 2.1, 7.4, 7.5, 7.6, 8.8, 9.0。指定了5个区间。
自动计算出五个区间的边界是:1.1~2.68, 2.68~4.26, 4.26~5.84, 5.84~7.42, 7.42~9.0。
每一个区间数值个数是:5, 0, 0, 1, 4。
1
2
3
val a = sc.parallelize(List(1.1, 1.2, 1.3, 2.0, 2.1, 7.4, 7.5, 7.6, 8.8, 9.0), 3)
a.histogram(5)
res11: (Array[Double], Array[Long]) = (Array(1.1, 2.68, 4.26, 5.84, 7.42, 9.0),Array(5, 0, 0, 1, 4))

mean

计算RDD中所有元素的平均值。

1
2
3
val a = sc.parallelize(List(9.1, 1.0, 1.2, 2.1, 1.3, 5.0, 2.0, 2.1, 7.4, 7.5, 7.6, 8.8, 10.0, 8.9, 5.5), 3)
a.mean
res0: Double = 5.3

max和min

max:求最大值。

min:求最小值。

max和min也可用于key-value型的RDD。此时,比较的是key的大小。

variance和sampleVariance

求方差。

stdev和sampleStdev

求标准差。

stats

同时统计总数、平均值、方差等。

1
2
3
val x = sc.parallelize(List(1.0, 2.0, 3.0, 5.0, 20.0, 19.02, 19.29, 11.09, 21.0), 2)
x.stats
res16: org.apache.spark.util.StatCounter = (count: 9, mean: 11.266667, stdev: 8.126859)
Tags: #Spark    Post on Spark-API