DataFrame API应用案例
DataFrame API
1、collect与collectAsList
、 collect返回一个数组,包含DataFrame中的全部Rows
collectAsList返回一个Java List,包含DataFrame中包含的全部Rows
2、count
返回DataFrame的rows的个数
3、first
返回第一个row
4、head
不带参数的head方法,返回DataFrame的第一个Row。指定参数n时,则返回前那个Rows
5、show
不带参数的show,显示前20个Rows,指定个数n,则显示n个
6、take
返回DataFrame前n个Rows
7、cache
将DataFrame缓存到内存中
8、Columns
以数组的形式返回DataFrame的全部列名
9、dtypes
以数组的形式返回DataFrame的所有列名及其对应的数据类型
10、explain
用于调试的目的,不带参数时,仅将DataFrame的物理计划打印到控制台上;当指定参数extended为true时,打印所有计划到控制台上,包括物理计划、逻辑计划
11、isLocal
如果collect与take方法在本地运行时,返回true
12、printSchema
以树形结构将DataFrame的Schema信息打印到控制台
13、registerTempTable
将DataFrame注册为指定名字的临时表
14、schema
返回DataFrame的Schema信息,对应类型为StructType
15、toDF
不带参数的toDF返回它本身,带字符串数组的参数时,返回新的DataFrame,该DataFrame重命名了各列名
16、agg
将DataFrame提供不需要经过groups就可以执行的统计操作
17、apply
根据指定列名返回DataFrame的列,类型为Column
18、as
使用别名创建DataFrame
19、distinct
返回对DataFrame的Rows去重后的DataFrame
20、except
返回DataFrame,包含当前Frame的Rows,同时这些Rows不在另一个Frame中。相当于两个DataFrame做减法
21、explode
返回一个新的DataFrame,其中原来的每一列被指定的函数扩展成零行或多行
22、filter
按参数指定的sql表达式的条件过滤DataFrame
23、groupBy
使用一个或多个指定的列队DataFrame进行分组,以便对他们执行聚合操作
24、intersect
取两个DataFrame中同时存在的Rows,返回DataFrame
25、join
26、limit
返回DataFrame的前n个Rows
27、orderBy和sort
按指定的一列或多列进行排序,分别支持字符串或Column的参数列表
28、sample
按指定因子对DataFrame的Rows进行抽样,如果指定withReplacement为true时,使用指定的种子或随机的种子进行替换。
29、select
从DataFrame中选取指定的列,返回DataFrame,指定列有三种方式,可以用列名字符串的重复参数,或Column重复参数及列名表达式的多个参数指定
30、unionAll
联合调用者和参数这两个DataFrame的Rows
31、withColumn和withColumnRenamed
对DataFrame列进行操作,withColumn增加列信息,withColumnRenamed对列进行重命名
32、save
保存到指定路径下
33、saveAsParquetFile
保存到数据源为parquet的指定路径下
34、flatMap
对DataFrame中Rows进行处理,并且处理结果
35、foreach
36、map和mapPartitions
map将DataFrame的Row按指定的函数参数映射成R实例,并返回以R为元素的类型的RDD实例。mapPartitions类似
37、repartition
返回一个DataFrame,该DataFrame按指定numPartitions对原DataFrame进行重分区
38、toJSON
把DataFrame的内容用包含json字符串的RDD返回
39、queryExecution
返回DataFrame的查询执行语句,包含逻辑计划和物理计划