DataFrame的統(tǒng)計(jì)函數(shù)的功能刻剥。
8.1 corr(col1, col2, method=None)
以雙精度值計(jì)算DataFrame的兩列的相關(guān)性滩字。目前只支持personal相關(guān)系數(shù). DataFrame.corr() and DataFrameStatFunctions.corr() 互為別名御吞。
參數(shù):●?col1?– 第一列的名稱
????????????●col2?– 第二列的名稱
????????????●method?– 相關(guān)方法,目前只支持 personal相關(guān)系數(shù)
8.2 cov(col1, col2)
計(jì)算給定列的樣本協(xié)方差(由它們的名稱指定)作為雙精度值漓藕。DataFrame.cov() and DataFrameStatFunctions.cov() 互為別名。
參數(shù):●?col1?– 第一列的名稱
? ? ? ? ? ?●?col2?– 第二列的名稱
8.3 crosstab(col1, col2)
計(jì)算給定列的成對(duì)頻率表. 每列的去重后不同值的數(shù)量應(yīng)小于1e4. 最多1e6非零對(duì)頻率將被返回. 每行的第一列將是col1的不同值揍诽,列名將是col2的不同值.第一列的名稱應(yīng)該為$col1_$col2. 沒(méi)有出現(xiàn)的對(duì)數(shù)將為零. DataFrame.crosstab() and DataFrameStatFunctions.crosstab() 互為別名
參數(shù):●?col1?– 第一列的名稱. 去重項(xiàng)將成為每一行的第一項(xiàng)栗竖。
? ? ? ? ? ?●?col2?– 第二列的名稱. 去重項(xiàng)將成為DataFrame的列名稱。
In [411]: df.crosstab('name','age').show()
+--------+---+---+
|name_age|? 2|? 5|
+--------+---+---+
|? ? Bob|? 0|? 1|
|? Alice|? 1|? 0|
+--------+---+---+
8.4 freqItems(cols, support=None)
找到列的頻繁項(xiàng)狐肢,可能有誤差。 DataFrame.freqItems() and DataFrameStatFunctions.freqItems()等價(jià).
此功能用于探索性數(shù)據(jù)分析碟联,不保證所生成的DataFrame的模式的向后兼容性僵腺。
參數(shù):●?cols?– 用于計(jì)算頻繁項(xiàng)的列的名稱,為字符串的列表或元組想邦。
? ? ? ? ? ?●?support?–“頻繁”項(xiàng)目的頻率。 默認(rèn)值是1%,必須大于1e-4鹰椒。
In [413]: df.freqItems(['name','age']).show()
+--------------+-------------+
|name_freqItems|age_freqItems|
+--------------+-------------+
|? [Bob, Alice]|? ? ? [2, 5]|
+--------------+-------------+
In [414]: df.show()
+-----+---+------+
| name|age|height|
+-----+---+------+
|Alice|? 2|? ? 80|
|? Bob|? 5|? null|
+-----+---+------+
8.5 sampleBy(col, fractions, seed=None)
根據(jù)每層上給出的分?jǐn)?shù)返回一個(gè)沒(méi)有更換的分層樣本呕童。
參數(shù):●?col?– 定義分層的列
? ? ? ? ? ?●?fractions?– 每層的抽樣比例,如果沒(méi)有指定層夺饲,我們將其分?jǐn)?shù)視為零。
? ? ? ? ? ?●?seed?– 隨機(jī)值
返回: 一個(gè)代表分層樣本的新DataFrame
In [416]: from pyspark.sql.functions import col
? ? ...: data = sqlContext.range(0, 100).select((col("id") % 4).alias("key"))
? ? ...: sampled = data.sampleBy("key", fractions={0: 0.1, 1: 0.2},seed=0)
? ? ...: sampled.groupBy("key").count().orderBy("key").show()
+---+-----+
|key|count|
+---+-----+
|? 0|? ? 2|
|? 1|? ? 7|
+---+-----+