sparkSession的常见配置参数
·

lazy val spark = SparkSession
.builder
.appName(taskName)
.config("hive.exec.dynamic.partition", "true")
.config("hive.exec.dynamic.partition.mode", "nonstrict")
.config("spark.sql.broadcastTimeout", 3000)
.config("spark.sql.sources.partitionOverwriteMode", "dynamic")
.enableHiveSupport() // 开启支持hive
.getOrCreate()
1) 需要根据分区值,往hive表中插入数据时,spakSession的配置参数
.config("hive.exec.dynamic.partition", "true")
.config("hive.exec.dynamic.partition.mode", "nonstrict")
2)需要根据分区值,覆盖原来的分区时,需要配置的参数:
.config("spark.sql.sources.partitionOverwriteMode", "dynamic")
注意:
- 如果表不存在,可以用df.write.saveAsTable()来创建表并写数据
- 如果表已经创建了,可以用df.write.insertInto()来写数据
- 根据分区列插入数据时, 分区列需要写在最后,否则分区字段不生效
df
.withColumn("model_version", lit("2.0"))
.withColumn("day", lit(getDay2(1)))
.repartition(1)
.write
.mode("overwrite")
.insertInto("temp.test_table")
更多推荐
所有评论(0)