【发布时间】:2017-04-09 12:01:58
【问题描述】:
-bash-4.1$ hadoop fs -ls /mytest/warehouse/mytable/
Found 4 items
-------------
- -rwxrwxrwx 3 myvm users 1163 2016-11-24 03:11 /mytest/warehouse/mytable/000000_0
- -rwxrwxrwx 3 myvm users 0 2016-11-24 03:09 /mytest/warehouse/mytable/000000_1
- -rwxrwxrwx 3 myvm users 0 2016-11-24 03:09 /mytest/warehouse/mytable/000000_2
- -rwxrwxrwx 3 myvm users 0 2016-11-24 03:09 /mytest/warehouse/mytable/000000_3
问题
insert overwrite directory "/mytest/warehouse/mytable" select * from my_table
以上命令只会覆盖它正在生成的文件,即:/mytest/warehouse/mytable/000000_0
我希望它会删除路径下的所有文件并创建 1 个具有所需输出的文件。
在使用 hive-1.1.0-cdh5.5.1 之前,它似乎工作正常。
【问题讨论】:
-
我正在使用 Hive 1.1.0-cdh5.7.1,但无法重现此行为。执行“插入覆盖目录”后,之前碰巧在该目录中的所有内容都将被删除。
-
当“select”命令只产生1个文件(000000_0)并且输出目录有超过1个文件(000000_0,000000_1,000000_2,000000_3)时,它只会覆盖它创建的文件( 000000_0)。我怀疑它是 cdh5.5.1 中的一个错误。但无法在任何地方获得任何 jira 请求。
标签: hadoop hive hql cloudera-cdh