将多个文件加载到配置单元表中

kx7yvsdv  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(467)

听着,我正试图把太多的文件分析到一个配置单元表中。关键见解,我正在处理json文件,表结构是:

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;

上面提到的任何一个都有效,你们知道我该怎么做吗?非常感谢

koaltpgm

koaltpgm1#

我真是。。。。好吧,我只记得你可以创建一个外部表,存储在同一个文件夹中,所有具有相同结构的文件都位于其中。所以,这样我就可以在一次拍摄中载入所有的唱片。

> 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/';

谢谢

piah890a

piah890a2#

确保文件夹仅包含需要加载到配置单元表中的文件。

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;

相关问题