DataFrame 的函数
检查重复:df…distinct()
var dataxx = Seq(
("89", "ming", "hlj","men","2019-09-08 19:19:19"),
("2", "kun", "xj","women","2019-09-07 10:13:15"),
("105", "kun", "xz","women","2019-09-02 20:20:20"),
("1000", "pig", "mc","women","2019-09-05 09:09:11"),
("1012", "pig", "hk","women","2019-09-04 10:11:11"),
("12", "long", "jx","men","2019-09-08 00:11:11"),
("110", "long", "fj","men","2019-09-07 01:01:01"),
("30", "sun", "ln","men","2019-09-08 11:11:11"),
("1", "sun", "jl","men","2019-09-06 13:11:11"),
("200", "tian", "jl","women","2019-09-07 02:02:02"),
("4", "tian", "bj","women","2019-09-08 12:12:12"),
("4", "tian", "bj","women","2019-09-08 12:12:12"),
("50", "tian", "bj","women","2019-09-07 13:13:13")
).toDF("useid", "name", "live","gender","createtime")
dataxx.show()
dataxx.count()
dataxx.distinct().count()
结果:
dataxx: org.apache.spark.sql.DataFrame = [useid: string, name: string ... 3 more fields]
+-----+----+----+------+-------------------+
|useid|name|live|gender| createtime|
+-----+----+----+------+-------------------+
| 89|ming| hlj| men|2019-09-08 19:19:19|
| 2| kun| xj| women|2019-09-07 10:13:15|
| 105| kun| xz| women|2019-09-02 20:20:20|
| 1000| pig| mc| women|2019-09-05 09:09:11|
| 1012| pig| hk| women|2019-09-04 10:11:11|
| 12|long| jx| men|2019-09-08 00:11:11|
| 110|long| fj| men|2019-09-07 01:01:01|
| 30| sun| ln| men|2019-09-08 11:11:11|
| 1| sun| jl| men|2019-09-06 13:11:11|
| 200|tian| jl| women|2019-09-07 02:02:02|
| 4|tian| bj| women|2019-09-08 12:12:12|
| 4|tian| bj| women|2019-09-08 12:12:12|
| 50|tian| bj| women|2019-09-07 13:13:13|
+-----+----+----+------+-------------------+
res113: Long = 13
res114: Long = 12
去除重复:df.dropDuplicates()
//移除重复的数据
df = df.dropDuplicates()
//查看去重后的数据
df.show()
Action 操作
1、 collect() ,返回值是一个数组,返回dataframe集合所有的行
2、 collectAsList() 返回值是一个Java类型的数组,返回dataframe集合所有的行
3、 count() 返回一个number类型的,返回dataframe集合的行数
4、 describe(cols: String*) 返回一个通过数学计算的类表值(count, mean, stddev, min, and max),这个可以传多个参数,中间用逗号分隔,如果有字段为空,那么不参与运算,只这对数值类型的字段。例如df.describe("age", "height").show()
5、 first() 返回第一行 ,类型是row类型
6、 head() 返回第一行 ,类型是row类型
7、 head(n:Int)返回n行 ,类型是row 类型
8、 show()返回dataframe集合的值 默认是20行,返回类型是unit
9、 show(n:Int)返回n行,,返回值类型是unit
10、table(n:Int) 返回n行 ,类型是row 类型
11 、limit(n:Int) 返回一个DataFrame类型值 提取DataFrame的前n行
Dataframe的基本操作
1、 cache()同步数据的内存
2、 columns 返回一个string类型的数组,返回值是所有列的名字
3、 dtypes返回一个string类型的二维数组,返回值是所有列的名字以及类型
4、 explan()打印执行计划 物理的
5、 explain(n:Boolean) 输入值为 false 或者true ,返回值是unit 默认是false ,如果输入true 将会打印 逻辑的和物理的
6、 isLocal 返回值是Boolean类型,如果允许模式是local返回true 否则返回false
7、 persist(newlevel:StorageLevel) 返回一个dataframe.this.type 输入存储模型类型
8、 printSchema() 打印出字段名称和类型 按照树状结构来打印
9、 registerTempTable(tablename:String) 返回Unit ,将df的对象只放在一张表里面,这个表随着对象的删除而删除了
10、 schema 返回structType 类型,将字段名称和类型按照结构体类型返回
11、 toDF()返回一个新的dataframe类型的
12、 toDF(colnames:String*)将参数中的几个字段返回一个新的dataframe类型的,
13、 unpersist() 返回dataframe.this.type 类型,去除模式中的数据
14、 unpersist(blocking:Boolean)返回dataframe.this.type类型 true 和unpersist是一样的作用false 是去除RDD
转载自博客:https://blog.csdn.net/sysmedia/article/details/70049017