シーケンスファイルとしてハイブテーブルを格納しています。シーケンスファイルとして保存されたHiveテーブルにテキストファイルを読み込む方法
このテーブルにテキストファイルを読み込む必要があります。このテーブルにデータをロードするにはどうしたらいいですか?
シーケンスファイルとしてハイブテーブルを格納しています。シーケンスファイルとして保存されたHiveテーブルにテキストファイルを読み込む方法
このテーブルにテキストファイルを読み込む必要があります。このテーブルにデータをロードするにはどうしたらいいですか?
textfileハイブテーブルにテキストファイルをロードし、このテーブルのデータをシーケンスファイルに挿入することができます。
タブ区切りのファイルでスタート:
% 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;
でロード/挿入すると、すべてを置き換えるためにを上書きすることもできます。
シーケンスファイルとして保存されたテーブルを直接作成してテキストを挿入することはできません。シーケンスファイルとして保存されたテーブルを作成するために、CTASを行い、テキストテーブル
例必要に応じて:
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;
することを直接行うことができ、我々は他のテーブルへの中間保存せずにTSVファイルからシーケンスフォーマットテーブルのものに読み込むことができますか? – Bohdan
できません。シーケンスファイルにデータをロードする唯一の最も簡単な方法は、上記の方法です。同じことがapche wiki https://cwiki.apache.org/confluence/display/Hive/CompressedStorageによって再確認されています。 –