我将日志文件以文本形式存储在 HDFS 中。当我将日志文件加载到 Hive 表中时,所有文件都会被复制。
我可以避免所有文本数据存储两次吗?
编辑:我通过以下命令加载它
LOAD DATA INPATH '/user/logs/mylogfile' INTO TABLE `sandbox.test` PARTITION (day='20130221')
然后,我可以在以下位置找到完全相同的文件:
/user/hive/warehouse/sandbox.db/test/day=20130220
我还以为是复制的呢
使用外部表:
CREATE EXTERNAL TABLE sandbox.test(id BIGINT, name STRING) ROW FORMAT
DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION '/user/logs/';
如果您想对外部表使用分区,您将负责管理分区目录。
指定的位置必须是 hdfs 目录..
如果删除外部表配置单元将不会删除源数据。
如果you想要管理您的原始文件,请使用外部表。如果您希望 hive 执行此操作,请让 hive 存储在其仓库路径内。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)