Sparkランタイムを介して大きなgzipファイルをハイブに読み込んで、SequenceFile形式に変換しようとしています
そして、私はこれを効率的に行いたいと思っています。
私の知る限り、Spark は、テキスト ファイルの場合と同様に、gzip ファイルごとに 1 つのマッパーのみをサポートします。
読み取られる gzip ファイルのマッパーの数を変更する方法はありますか? または寄木細工のような別の形式を選択する必要がありますか?
私は現在立ち往生しています。問題は、私のログ ファイルが txt 形式に保存された json のようなデータであり、その後 gzip されたことorg.apache.spark.sql.json
です。
私が見た例では、データを SequenceFile に変換すると、csv 形式の単純な区切り文字がいくつかあります。
私はこのクエリを実行していました:
create TABLE table_1
USING org.apache.spark.sql.json
OPTIONS (path 'dir_to/file_name.txt.gz');
しかし、今は次のように書き直さなければなりません。
CREATE TABLE table_1(
ID BIGINT,
NAME STRING
)
COMMENT 'This is table_1 stored as sequencefile'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS SEQUENCEFILE;
LOAD DATA INPATH 'dir_to/file_name.txt.gz' OVERWRITE INTO TABLE table_1;
LOAD DATA INPATH 'dir_to/file_name.txt.gz' INTO TABLE table_1;
INSERT OVERWRITE TABLE table_1 SELECT id, name from table_1_text;
INSERT INTO TABLE table_1 SELECT id, name from table_1_text;
これはこれを行うための最適な方法ですか、それともこの問題に対するより簡単なアプローチはありますか? 助けてください!