如何将数据写入 Hive 表?
Posted
技术标签:
【中文标题】如何将数据写入 Hive 表?【英文标题】:How to write data into a Hive table? 【发布时间】:2017-08-09 06:54:41 【问题描述】:我使用 Spark 2.0.2。
在学习将数据集写入 Hive 表的概念时,我了解到我们有两种方式:
-
使用 sparkSession.sql("你的 sql 查询")
dataframe.write.mode(SaveMode."type of
模式").insertInto("tableName")
谁能告诉我使用 Spark 加载 Hive 表的首选方式是什么?
【问题讨论】:
取决于开发人员。我一般用第一个。 【参考方案1】:总的来说,我更喜欢 2。首先,因为对于多行,您无法构建如此长的 sql,其次是因为它减少了出错或其他问题(如 SQL 注入攻击)的可能性。
与 JDBC 一样,我尽可能多地使用 PreparedStatements。
【讨论】:
【参考方案2】:以这种方式思考,我们需要在 hive 上实现每日更新。
这可以通过两种方式实现
-
处理hive的所有数据
仅处理受影响的分区。
对于第一个选项,sql 就像 gem 一样工作,但请记住,处理整个数据的数据应该更少。
第二个选项效果很好。如果您只想处理受影响的分区。使用 data.overwite.partitionby.path 您应该以仅处理受影响的分区的方式编写逻辑。此逻辑将应用于数据为数百万 T 十亿条记录的表
【讨论】:
以上是关于如何将数据写入 Hive 表?的主要内容,如果未能解决你的问题,请参考以下文章
在 Apache Spark 中,用 Java 将数据帧写入 Hive 表
Hive:Spark中如何实现将rdd结果插入到hive1.3.1表中