2017-09-23 51 views
-1

看我试图分析太多文件到一个HIVE表中。关键的见解,我正在与json文件和表结构是:将多个文件加载到HIVE表中

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; 

上述任何一个工作,任何想法家伙应该如何去通过? 非常感谢

回答

0

我太......所以,我只记得你可以创建一个外部表存储在同一个文件夹中具有相同结构的所有文件都位于。所以,这样我就可以在一次拍摄中加载整个记录。

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

感谢

1

确保文件夹只包含其需要的文件被加载到蜂巢表。

创建外部表TEST1 ( STATIONS ARRAY, SCHEMESUSPENDED STRING, TIMELOAD TIMESTAMP ) 行格式SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' LOCATION“/用户/安德烈/蜂巢/ bixihistorical /';

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

+0

我试过这个看看我发布的例子。所以我所做的就是在创建表中将目标定位到文件存储库!谢谢 –

相关问题