最近开始接触pyspark其中DataFrame的应用很重偠也很简便。因此这里记录一下自己的学习笔记。
详细的应用可以参看这是官网文档,里面记录了详细的DataFrame使用说明
以sql输出的结果创建df,这种形式最常用
当然,也可以采用下面的方式创建DF我们这里造了下面的数据集来说明df的一系列操作。
createDataFrame有一个参数samplingRatio。这个参数的含义是:如果df的某列的类型不确定则抽样百分之samplingRatio的数据来看是什么类型。因此我们一般设定其为1。即只要该列有1个数据不为空,该列的类型就不会为null
df.show()默认打印前20条数据,当然可以指定具体打印多少条数据
查询某列为null的行
输出list类型,list中每个元素是Row类:
注:此方法将所有数据全部导入到本地返回一个Array对象。当然我们可以取出Array中的值,是一个Row我们也可以取出Row中的值。
选择一列或多列:select
用where按条件选擇
orderBy:按指定字段排序默认为升序
withColumn是通过添加或替换与现有列有相同的名字的列,返回一个新的DataFrame
但是,我们这么写会报错
另一种方式是通过另一个已有变量:
利用union可以按行拼接
合并2个表的join方法:
来看一个例子先构造两个dataframe:
有时候需要根据某个字段内容进行分割,然后生成多行这时可以使用explode方法。下
面代码中根据c3字段中的空格将字段内容进行分割,分割的内容存储在新的字段c3_中如下所示
在stat模块中。参考文献【2】有详细介绍
当然,pyspark的df的功能特别强大我这里就不再一一举例了,详见参考文献【2】
快速了解dataframe 提供的功能. 避免重复工莋
cov 皮尔逊相关系数