簡體   English   中英

使用 Hive 更新/編輯 Hdfs 中的記錄

[英]Update/Edit records in Hdfs using Hive

我在 HDFS 中有一些人的記錄。 我在 Hive 中使用外部表來查看,對特定數據進行分析,我也可以在其他程序中外部使用它。

最近我有一個用例,我必須更新 HDFS 中的數據。 根據文檔,我知道我們無法使用外部表更新或刪除數據。

另一個問題是數據不是ORC格式。 它實際上是 TEXTFILE 格式。 所以我也無法更新或刪除內部表中的數據。 由於它在生產中,我無法將其復制到任何地方以將其轉換為 ORC 格式。 請建議我如何編輯 HDFS 中的數據。

您可以使用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 

這種方法適用於外部和托管以及所有存儲格式。 只需編寫返回所需數據集的選擇並添加插入覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM