我是Hadoop的新手,在发布此问题之前,我已经在google上搜索并找到了只有ORC文件的所有crud操作示例。因此想知道我们是否可以对文本文件执行相同操作,或者是否需要对语法进行任何更改。 预先感谢。
答案 0 :(得分:0)
非ACID模式下CRUD操作的典型模板:
C:插入是相同的(可以从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上的手册。