目录
[一. Spark SQL中数据清洗的API有哪些,各自作用是什么?](#一. Spark SQL中数据清洗的API有哪些,各自作用是什么?)
[二. 设置Spark SQL的shuffle分区数的方式有哪几种](#二. 设置Spark SQL的shuffle分区数的方式有哪几种)
[三. 数据写出到数据库需要注意什么?](#三. 数据写出到数据库需要注意什么?)
[四. Spark程序运行集群分类](#四. Spark程序运行集群分类)
一. Spark SQL中数据清洗的API有哪些,各自作用是什么?
- 去重
Dorpduplicate: 桌度仆力K
init_df.dropDuplicates().show()
init_df.dropDuplicates(subset=[字段1,字段2]).show()
如果没有指定subset,那么就会对一整行的数据 进行比对, 如果全部都相同,那么就删除
- 去除空值
dropna : 桌那
init_df.dropna(thresh=2,subset=["字段1,字段2"]).show()
init_df.dropna(thresh=2).show()
init_df.dropna().show()
如果不传参数,只要有一个字段为null就删除全部
如果制定了subset,那么检查的范围就限定在subset里
thresh就是进一步指定范围的数值,至少有thresh个值不为空,才不会被删除
- 填充替换
fillna: feel那
init_df.fillna(value=999).show()
init_df.fillna(value=999,subset=["字段1","字段2"]).show()
init_df.fillna(value={"{"name":"未知姓名","age":100}).show()
fillna(value,subset):替换缺失值数据
value(是要替换的内容) , subset是要替换的范围 ,常用的是value = 字典类型的形式
二. 设置Spark SQL的shuffle分区数的方式有哪几种
方式一:
全局设置: Spark.sql.shuffle.Partitions 数量
方式二:
动态设置shuffle分区数量 : ./spark-submit --conf "spark.sql.shuffle.partitions=数量"
方式三:
写死分区数: sparkSession.conf.set('spark.sql.shuffle.partitions',数量)
三. 数据写出到数据库需要注意什么?
中文乱码问题。需要设置数据库编码,以及在连接URL中指定编码参数
?useUnicode=true&characterEncoding=utf-8
四. Spark程序运行集群分类
Spark 集群 : Spark自带的集群 , 也称为Standalone
Yarn集群:Spark程序运行在Yarn上