【问题标题】:Update/Edit records in Hdfs using Hive使用 Hive 更新/编辑 Hdfs 中的记录
【发布时间】:2019-03-09 10:06:10
【问题描述】:

我有一些人在 HDFS 中的记录。我使用 Hive 中的外部表来查看,对特定数据进行分析,也可以在其他程序中在外部使用它。

最近我遇到了一个用例,我必须更新 HDFS 中的数据。根据文档,我知道我们无法使用外部表更新或删除数据。

另一个问题是数据不是ORC格式。它实际上是 TEXTFILE 格式。所以我也无法更新或删除内部表中的数据。由于它在生产中,我无法将其复制到任何地方以将其转换为 ORC 格式。请建议我如何编辑 HDFS 中的数据。

【问题讨论】:

    标签: hadoop hive hdfs hiveql


    【解决方案1】:

    您可以使用 INSERT OVERWRITE 更新或删除 + 使用过滤器和其他转换从自身中选择:

    insert overwrite table mytable
    select col1, --apply transformations here
           col2, --for example: case when col2=something then something_else else col2 end as col2
           ...
          colN
      from mytable
     where ... filter out records you want to delete 
    

    此方法适用于外部和托管以及所有存储格式。只需编写返回所需数据集的选择并添加 INSERT OVERWRITE。

    【讨论】:

      猜你喜欢
      • 2014-05-23
      • 1970-01-01
      • 2017-08-12
      • 2013-06-06
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      相关资源
      最近更新 更多