将多个文件加载到 HIVE table

Load several files into HIVE table

看,我正在尝试将太多文件分析到一个 HIVE table 中。关键见解,我正在处理 json 文件并且 tables 结构是:

CREATE EXTERNAL TABLE test1
(
STATIONS ARRAY<STRING>,
SCHEMESUSPENDED STRING,
TIMELOAD TIMESTAMP
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION '/user/andres/hive/bixihistorical/';

我需要加载大约 50 个结构相同的文件。我试过类似的东西:

LOAD DATA  INPATH '/user/andres/datasets/bixi2017/*.json'
OVERWRITE INTO TABLE test1;

LOAD DATA  INPATH '/user/andres/datasets/bixi2017/*'
OVERWRITE INTO TABLE test1;

LOAD DATA  INPATH '/user/andres/datasets/bixi2017/'
OVERWRITE INTO TABLE test1;

上面的任何一个都有效,关于我应该如何通过的任何想法? 非常感谢

我太好了....好吧,我只记得您可以创建一个外部 table 存储在同一文件夹中,所有具有相同结构的文件都位于该文件夹中。所以,这样一来,我将一次性加载所有记录。

> CREATE EXTERNAL TABLE bixi_his
> (
> STATIONS ARRAY<STRUCT<id: INT,s:STRING,n:string,st:string,b:string,su:string,m:string,lu:string,lc:string,bk:string,bl:string,la:float,lo:float,da:int,dx:int,ba:int,bx:int>>,
> SCHEMESUSPENDED STRING,
> TIMELOAD BIGINT
> )
> ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
> LOCATION '/user/ingenieroandresangel/datasets/bixi2017/';

谢谢

确保文件夹只包含需要加载到 Hive 中的文件 table。

CREATE EXTERNAL TABLE test1
(
STATIONS ARRAY<STRING>,
SCHEMESUSPENDED STRING,
TIMELOAD TIMESTAMP
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION '/user/andres/hive/bixihistorical/';


LOAD DATA INPATH '/user/andres/datasets/bixi2017/'
OVERWRITE INTO TABLE test1;