从 Spark 替换 hive 分区
Posted
技术标签:
【中文标题】从 Spark 替换 hive 分区【英文标题】:Replace a hive partition from Spark 【发布时间】:2018-02-06 23:20:09 【问题描述】:有没有办法可以从 Spark 程序中替换(现有的)配置单元分区?只替换最新的分区,其余分区保持不变。
以下是我正在尝试的想法,
我们每分钟都会从我们的 RDBMS 系统中获取到 HDFS 的跨国数据。将有一个 spark 程序(每 5 或 10 分钟运行一次)读取数据、执行 ETL 并将输出写入 Hive 表。 由于覆盖整个蜂巢表会很大, 我们只想覆盖今天分区的配置单元表。 End of Day 源和目标分区将更改为下一天。
提前致谢
【问题讨论】:
【参考方案1】:当您知道 hive 表位置时,将 currentdate 附加到位置,因为您的表在日期上分区并覆盖 hdfs 路径。
df.write.format(source).mode("overwrite").save(path)
Msck repair hive table
完成后
【讨论】:
以上是关于从 Spark 替换 hive 分区的主要内容,如果未能解决你的问题,请参考以下文章
Spark 分区:创建 RDD 分区但不创建 Hive 分区
Spark Sql 从 Hive orc 分区表中读取,给出数组越界异常
从 spark(2.11) 数据帧写入 hive 分区表时出现 org.apache.hadoop.hive.ql.metadata.Hive.loadDynamicPartitions 异常
使用 spark hivecontext 读取外部 hive 分区表的问题