我有存储为sequencefile蜂房表。
我需要一个文本文件加载到这个表。 如何将数据加载到这个表?
我有存储为sequencefile蜂房表。
我需要一个文本文件加载到这个表。 如何将数据加载到这个表?
您可以将文本文件加载到一个文本文件蜂房表,然后从该表中的数据插入到你的sequencefile。
开始一个制表符分隔的文件:
% cat /tmp/input.txt
a b
a2 b2
创建序列文件
hive> create table test_sq(k string, v string) stored as sequencefile;
尝试加载; 如预期,这将失败:
hive> load data local inpath '/tmp/input.txt' into table test_sq;
但与此表:
hive> create table test_t(k string, v string) row format delimited fields terminated by '\t' stored as textfile;
负载工作得很好:
hive> load data local inpath '/tmp/input.txt' into table test_t;
OK
hive> select * from test_t;
OK
a b
a2 b2
现在,装入从文本表中序列表:
insert into table test_sq select * from test_t;
还可以做负载覆盖 /插入全部更换。
您不能直接创建存储作为一个序列文件表格和文字插入到它。 你必须这样做:
例:
CREATE TABLE test_txt(field1 int, field2 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
LOAD DATA INPATH '/path/to/file.tsv' INTO TABLE test_txt;
CREATE TABLE test STORED AS SEQUENCEFILE
AS SELECT * FROM test_txt;
DROP TABLE test_txt;