【问题标题】:Does INSERT OVERWRITE in Hive insert by name or ordinal position?Hive 中的 INSERT OVERWRITE 是否按名称或序号位置插入?
【发布时间】:2020-09-28 12:50:06
【问题描述】:

我想知道 Hive 中的 INSERT OVERWRITE 如何在 Apache Spark 中工作。我们仅覆盖特定分区并使用以下查询:

INSERT OVERWRITE TABLE tableName1 PARTITION (col1=val1) SELECT * FROM tableName2

这将覆盖特定分区并保留其他分区。这是按序号位置还是按名称写的?我似乎找不到任何文档来回答这个特定问题。

任何帮助将不胜感激。

【问题讨论】:

  • 你使用的是哪个 spark 版本??
  • 我们使用的是 2.1 版

标签: sql apache-spark hive insert overwrite


【解决方案1】:

在这种情况下,Spark 上的 Hive 的工作方式与 Spark 之外的 Hive 相同。

Programming Hive 书中的第 5 章 - HiveQL:数据操作 - 将数据插入表部分清楚地说明了以下内容:

Hive 确定分区键的值...,从最后一个 <n> SELECT 子句中的列。 ...之间的关系 源列值和输出分区值是按位置 仅通过名称匹配而不是通过匹配。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    相关资源
    最近更新 更多