使用 Hive on spark 将数据从 gzip 格式转换为 sequenceFile 格式

Convert data from gzip to sequenceFile format using Hive on spark

I'm trying to read a large gzip file into hive through spark runtime to convert into SequenceFile format

而且,我想高效地做到这一点。

据我所知,Spark 只支持每个 gzip 文件一个映射器,就像它对文本文件一样。

有没有办法更改正在读取的 gzip 文件的映射器数量?还是我应该选择另一种格式,如镶木地板?

我目前卡住了。 问题是我的日志文件是 json-like 数据保存为 txt 格式,然后是 gzip - ed,所以为了阅读我使用了 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;

这是执行此操作的最佳方法,还是有更简单的方法来解决此问题? 请帮忙!

由于 gzip 文本文件不可拆分,因此只会启动一个映射器或 如果要使用多个,则必须选择其他数据格式 映射器。

如果有巨大的 json 文件并且您想在 hdfs 上节省存储空间,请使用 bzip2 compression 在 hdfs.You 上压缩你的 json 文件可以查询 .bzip2 json 无需修改任何内容即可从配置单元中提取文件。