从浏览网页 - 我理解DELETE& Impala / Hive不支持UPDATE子句。我正在尝试为此案例找到解决方法。 我尝试使用INSERT OVERWRITE子句执行它但没有成功:\
我有一个分区表,其中包含:user_id,day,month,year (分日期,月份,年份)。
假设每个日期有1行(每个日期由这3个分区列表示),我想删除2016-05-01的行
如果我使用MySQL,我会写:
DELETE FROM tblname
WHERE year = 2016 and month = 5 and day = 1
我如何在Hive / Impala上执行它?
谢谢!
答案 0 :(得分:0)
对数据进行分区,使您要删除的行(使用窗口函数row_number)位于分区中。然后,您可以删除分区而不会影响表的其余部分。这是一个相当可持续的模型,即使您的数据集变得非常大。
有关分区的详细信息。
www.tutorialspoint.com/hive/hive_partitioning.htm