如何将数据写入 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 表?的主要内容,如果未能解决你的问题,请参考以下文章

将 PySpark 数据帧写入分区 Hive 表

使用 PIG 将数据写入 HIVE 外部表

在 Apache Spark 中,用 Java 将数据帧写入 Hive 表

Hive:Spark中如何实现将rdd结果插入到hive1.3.1表中

如何在 Spark SQL 中使用 snappy 压缩将数据写入配置单元表

spark读取数据写入hive数据表