Spark SQL和DataFrames重要的类有:
- pyspark.sql.SQLContext: DataFrame和SQL方法的主入口
- pyspark.sql.DataFrame: 将分布式数据集分组到指定列名的数据框中
- pyspark.sql.Column :DataFrame中的列
- pyspark.sql.Row: DataFrame数据的行
- pyspark.sql.HiveContext: 访问Hive数据的主入口
- pyspark.sql.GroupedData: 由DataFrame.groupBy()创建的聚合方法集
- pyspark.sql.DataFrameNaFunctions: 处理丢失数据(空数据)的方法
- pyspark.sql.DataFrameStatFunctions: 统计功能的方法
-pyspark.sql.functions DataFrame:可用的内置函数 - pyspark.sql.types: 可用的数据类型列表
- pyspark.sql.Window: 用于处理窗口函数
7.class pyspark.sql.DataFrameStatFunctions(df):DataFrame的统计函数的功能。
7.1corr(col1,col2,method=None):以双精度值计算DataFrame的量列的相关性。目前只支持皮尔逊相关系数,DataFrame.corr()是DataFameStatFunctions.corr()的别名。
1.col1:第一列名称
2.col2:第二列名称
3.method:相关方法啊,目前只支持‘皮尔逊’
7.2cov(col1,col2):计算给定列的样本协方差作为双精度值。DataFrame.cov()是DataFrameStatFunctions.cov() 互为别名。
1.col1:第一列名称
2.col2:第二列名称
7.3.crosstab(col1,col2):计算给定列的成对频率表. 也被称为应急表. 每列的去重后不同值的数量应小于1e4. 最多1e6非零对频率将被返回. 每行的第一列将是col1的不同值,列名将是col2的不同值.第一列的名称应该为col2. 没有出现的对数将为零. DataFrame.crosstab() and DataFrameStatFunctions.crosstab() 互为别名互为别名。
1.col1:第一列的名称. 去重项将成为每一行的第一项。
2.col2:第二列的名称. 去重项将成为DataFrame的列名称。
7.4.freqItems(col,support=None):找到列的频繁项,可能有误差。使用“http://dx.doi.org/10.1145/762471.762473, proposed by Karp, Schenker, and Papadimitriou”中描述的频繁元素计数算法。 DataFrame.freqItems() and DataFrameStatFunctions.freqItems()互为别名。
注:此功能用于探索性数据分析,因为我们不保证所生成的DataFrame的模式的向后兼容性。
1.col1:用于计算频繁项的列的名称,为字符串的列表或元组。
2.col2:“频繁”项目的频率。 默认值是1%,必须大于1e-4。
7.5.sampleBy(col,fraction,seed=None):根据每层上给出的份数返回一个没有更换的分层样本。
1.col1:定义分层的列
2.fraction:每层的抽样比例,如果没有指定层,我们将其视为0
3.seed:随机值
返回:一个代表分层样本的新DataFrame
>>> from pyspark.sql.functions import col
>>> dataset = sqlContext.range(0, 100).select((col("id") % 3).alias("key"))
>>> sampled = dataset.sampleBy("key", fractions={0: 0.1, 1: 0.2}, seed=0)
>>> sampled.groupBy("key").count().orderBy("key").show()
+---+-----+
|key|count|
+---+-----+
| 0| 5|
| 1| 9|
+---+-----+