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

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

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

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

我需要用相同的结构加载大约50个文件。我试过这样的方法:

  1. LOAD DATA INPATH '/user/andres/datasets/bixi2017/*.json'
  2. OVERWRITE INTO TABLE test1;
  3. LOAD DATA INPATH '/user/andres/datasets/bixi2017/*'
  4. OVERWRITE INTO TABLE test1;
  5. LOAD DATA INPATH '/user/andres/datasets/bixi2017/'
  6. OVERWRITE INTO TABLE test1;

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

koaltpgm

koaltpgm1#

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

  1. > CREATE EXTERNAL TABLE bixi_his
  2. > (
  3. > 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>>,
  4. > SCHEMESUSPENDED STRING,
  5. > TIMELOAD BIGINT
  6. > )
  7. > ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
  8. > LOCATION '/user/ingenieroandresangel/datasets/bixi2017/';

谢谢

piah890a

piah890a2#

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

  1. CREATE EXTERNAL TABLE test1
  2. (
  3. STATIONS ARRAY<STRING>,
  4. SCHEMESUSPENDED STRING,
  5. TIMELOAD TIMESTAMP
  6. )
  7. ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
  8. LOCATION '/user/andres/hive/bixihistorical/';
  9. LOAD DATA INPATH '/user/andres/datasets/bixi2017/'
  10. OVERWRITE INTO TABLE test1;

相关问题