大数据学习

Spark SQL写入Hive,同分区overwrite,不同分

2020-12-23  本文已影响0人  xiaogp

摘要:Spark SQLHive

新建hive表

新建hive表,定义好字段类型和分区字段

CREATE TABLE `test` (
`id` int,
`name` string,
`score` double
) PARTITIONED BY (
`dt` string
) STORED AS PARQUET;

Spark SQL调用HQL语法

将DataFrame创建为视图表,创建一个分区字符串对象,使用insert overwrite指定partition(dt=????)进行指定分区的overwrite操作

res.createOrReplaceTempView("res")
// dt = "20201212"
val dt: String = getDiffDate(configProperties.value.getProperty("dtDiffDays").toInt, getNowDate()).replace("-", "")
spark.sql(s"insert overwrite table ${configProperties.value.getProperty("saveModelTable")} partition(dt='${dt}') select * from res")

查看插入结果

建表之后test为一张空表,分别指定三次插入overwrite操作,dt分别为"20201203","20201203","20201208",最终结果只有两个分区的数据

hive> show partitions test;
OK
partition
dt=20201203
dt=20201208
上一篇 下一篇

猜你喜欢

热点阅读