【问题标题】:How to move data between partitioned tables in Hive如何在 Hive 中的分区表之间移动数据
【发布时间】:2016-09-28 01:05:14
【问题描述】:

我有两个表 emp1emp2 有字段-

  • 用户名
  • 姓名
  • 职业
  • 国家

emp1 有国家分区,emp2 有职业分区

如何将数据从emp1 移动到emp2

【问题讨论】:

    标签: hive partitioning


    【解决方案1】:

    使用 emp1 中的数据集和 emp2 表中的 (union all) 旧数据覆盖目标表。在查询结束时注意distribute by - 这是为了优化分区创建,最终reducer 将只接收它们的分区数据,这将减少内存消耗。

    insert overwrite table emp2 partition(occupation) 
    select userid, name, country, occupation from emp1 
    union all
    select userid, name, country, occupation from emp2
    distribute by occupation;
    

    此外,您可以使用 row_number() 添加删除重复项。

    【讨论】:

    • 仅代码答案本身并不是很有用。如果您可以添加一些详细信息来解释它如何/为什么回答问题,这将有所帮助。
    • 请编辑您的答案并附上解释,或者如果您无法解释代码,请提供有用的链接。您应该避免发布满足“请给我代码”问题的时尚答案。
    猜你喜欢
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 2023-01-30
    • 2016-02-22
    • 1970-01-01
    相关资源
    最近更新 更多