私はいくつかの Hadoop ストリーミング API プログラムを持っており、この出力形式で出力を生成します: "org.apache.hadoop.mapred.SequenceFileOutputFormat" そして、ストリーミング API プログラムは、入力形式 "org.apache.hadoop.mapred.SequenceFileAsTextInputFormat" でファイルを読み取ることができます。
出力ファイルのデータは次のようになります。
val1-1,val1-2,val1-3
val2-1,val2-2,val2-3
val3-1,val3-2,val3-3
今、ハイブで出力を読みたいです。このスクリプトでテーブルを作成しました:
CREATE EXTERNAL
TABLE IF NOT EXISTS table1
(
col1 int,
col2 string,
col3 int
)
PARTITIONED BY (year STRING,month STRING,day STRING,hour STRING)
ROW FORMAT DELIMITED
FIELDs TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.SequenceFileAsTextInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.mapred.SequenceFileOutputFormat'
LOCATION '/hive/table1';
クエリでデータをクエリするとき
select * from table1
結果は次のようになります。
val1-2,val1-3
val2-2,val2-3
val3-2,val3-3
最初の列は無視されているようです。ハイブはキーではなく値を出力として使用すると思います。何か案は?