Tôi có một bảng tổ chức được lưu trữ dưới dạng một tệp tuần tự.Cách tải một tệp văn bản vào bảng Hive được lưu trữ dưới dạng các tệp trình tự
Tôi cần tải tệp văn bản vào bảng này. Làm cách nào để tải dữ liệu vào bảng này?
Tôi có một bảng tổ chức được lưu trữ dưới dạng một tệp tuần tự.Cách tải một tệp văn bản vào bảng Hive được lưu trữ dưới dạng các tệp trình tự
Tôi cần tải tệp văn bản vào bảng này. Làm cách nào để tải dữ liệu vào bảng này?
Bạn có thể tải tệp văn bản vào bảng Hf văn bản và sau đó chèn dữ liệu từ bảng này vào tệp tuần tự của bạn.
Bắt đầu với một tab tập tin được phân định:
% cat /tmp/input.txt
a b
a2 b2
tạo ra một tập tin chuỗi
hive> create table test_sq(k string, v string) stored as sequencefile;
thử tải; như mong đợi, điều này sẽ thất bại:
hive> load data local inpath '/tmp/input.txt' into table test_sq;
Nhưng với bảng này:
hive> create table test_t(k string, v string) row format delimited fields terminated by '\t' stored as textfile;
Tải trọng làm việc tốt:
hive> load data local inpath '/tmp/input.txt' into table test_t;
OK
hive> select * from test_t;
OK
a b
a2 b2
Bây giờ nạp vào bảng chuỗi từ bảng văn bản:
insert into table test_sq select * from test_t;
Cũng có thể tải/chèn với ghi đè để thay thế tất cả.
Bạn không thể trực tiếp tạo bảng được lưu trữ dưới dạng tệp chuỗi và chèn văn bản vào đó. Bạn phải làm điều này:
Ví dụ:
CREATE TABLE test_txt(field1 int, field2 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
LOAD DATA INPATH '/path/to/file.tsv';
CREATE TABLE test STORED AS SEQUENCEFILE
AS SELECT * FROM test_txt;
DROP TABLE test_txt;
mà có thể được thực hiện trực tiếp, chúng ta có thể tải sang định dạng chuỗi bảng thứ từ tập tin TSV mà không cần tiết kiệm trung gian để bảng khác? – Bohdan
Không thể thực hiện được. Cách dễ nhất để tải dữ liệu vào tệp chuỗi là cách trên. Điều tương tự cũng được xác nhận lại bởi apche wiki https://cwiki.apache.org/confluence/display/Hive/CompressedStorage –