我们可以对 hive 中的“文本文件”执行 crud 操作吗
Posted
技术标签:
【中文标题】我们可以对 hive 中的“文本文件”执行 crud 操作吗【英文标题】:Can we perform crud operation on "text file" in hive 【发布时间】:2019-02-08 02:35:10 【问题描述】:我是 Hadoop 的新手,在发布这个问题之前,我已经在 google 上搜索过,发现所有的 crud 操作示例都只有 ORC 文件。所以想知道我们是否可以对文本文件做同样的事情,或者是否需要对语法进行任何更改。 提前致谢。
【问题讨论】:
【参考方案1】:非 ACID 模式下 CRUD 操作的典型模板:
C:insert是一样的(可以来自select)
INSERT INTO TABLE table_name VALUES... or SELECT FROM ...
R:这很简单
SELECT * FROM TABLE table_name WHERE ...
U: 使用 从自身中选择 写入整个表或分区(使用连接来更新其他表中的值)。使用 CASE 语句更新列。
INSERT OVERWRITE TABLE table_name [PARTITION(key=value)]
SELECT --update columns using CASE
case when col=some_value then some_other_value end as col,
...
case when coln=some_value then some_other_value end as coln,
col_x --not updated column
FROM table_name [WHERE partition_key=value]
JOIN...
D:这是使用使用过滤器从自身中选择来重写整个表或分区。可与更新结合使用。
INSERT OVERWRITE TABLE table_name [PARTITION(key=value)]
SELECT *
FROM table_name [WHERE partition_key=value]
WHERE --Filter out records you want to delete
另外请阅读这个关于MERGE的答案。
请参阅Hive DML 上的手册。
【讨论】:
以上是关于我们可以对 hive 中的“文本文件”执行 crud 操作吗的主要内容,如果未能解决你的问题,请参考以下文章