【问题标题】:drop hive table partition through pig script通过 pig 脚本删除 hive 表分区
【发布时间】:2016-05-30 07:42:44
【问题描述】:

目前我们每天都删除表格并运行将数据加载到表格中的脚本。脚本需要 3-4 小时,在此期间数据将不可用。所以现在我们的目标是让分析师可以使用旧的配置单元数据,直到新的数据加载执行完成。

我在 hql 脚本中通过将每日数据加载到按 load_year、load_month 和 load_day 分区的配置单元表并通过删除分区删除昨天的数据来实现这一点。 但是,猪脚本可以实现相同的选择是什么?我们可以通过 pig 脚本更改表格吗?我不想在猪之后执行另一个 hql 来删除分区。 谢谢

【问题讨论】:

  • Pig 用于数据流......所以在为过程图片正确数据挑选数据时......
  • 对不起。我没有得到你。我的问题与拾取数据无关,它与将数据存储在pig中以及通过pig存储删除旧数据之后。

标签: hive apache-pig


【解决方案1】:

从 HDP 2.3 开始,您可以在 Pig 脚本中使用 HCatalog 命令。因此,您可以使用 HCatalog 命令删除 Hive 表分区。以下是删除 Hive 分区的示例:

-- Set the correct hcat path 
set hcat.bin /usr/bin/hcat;
-- Drop a table partion or execute other any Hcatalog command
sql ALTER TABLE midb1.mitable1 DROP IF EXISTS PARTITION(activity_id = "VENTA_ALIMENTACION",transaction_month = 1);

另一种方法是在 Pig Script 中使用 sh 命令执行。但是,我在转义 ALTER 命令中的特殊字符时遇到了一些问题。所以,我认为第一个是最好的选择。

问候, 罗伯托·塔迪奥

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    相关资源
    最近更新 更多