在hive中,可以创建两种表:托管表和外部表对于托管表,您拥有数据,因此当您删除表时,数据将被删除。对于外部表,您没有数据的所有权,因此当您删除这样的表时,基础数据不会被删除。只删除元数据。现在,最近我注意到您不能在hdfs中没有写(修改)权限的位置上创建外部表。我完全不明白这一点。用例:很常见的情况是,您正在处理的数据非常大并且是只读的。所以,要通过hive搅动这些数据,您是否必须将这些巨大的数据复制到您有写权限的位置?请帮忙。
egdjgwm81#
虽然删除外部数据不会导致删除数据,但这并不意味着外部表是只读的。例如,你应该能够 INSERT OVERWRITE 在外桌上。也就是说,当您只有读访问权限时,肯定可以使用(内部)表,所以我怀疑外部表也是如此。尝试使用具有写入权限的帐户创建表,然后将其与常规帐户一起使用。
INSERT OVERWRITE
1条答案
按热度按时间egdjgwm81#
虽然删除外部数据不会导致删除数据,但这并不意味着外部表是只读的。例如,你应该能够
INSERT OVERWRITE
在外桌上。也就是说,当您只有读访问权限时,肯定可以使用(内部)表,所以我怀疑外部表也是如此。尝试使用具有写入权限的帐户创建表,然后将其与常规帐户一起使用。