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

Hadoop 将多个文件加载到配置单元表中,hadoop,hive,hdfs,hiveql,Hadoop,Hive,Hdfs,Hiveql,看,我试图在一个配置单元表中分析太多的文件。关键见解,我正在处理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/bixihistorica

看,我试图在一个配置单元表中分析太多的文件。关键见解,我正在处理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/';
以上任何一项都有效,你们知道我该怎么做吗?
非常感谢

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

> 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/';
>创建外部表bixi\u his
> (
>台站阵列,
>SCHEMESUSPENDED字符串,
>时间加载比金
> )
>行格式SERDE'org.apache.hive.hcatalog.data.JsonSerDe'
>位置“/user/ingenieroandresangel/datasets/bixi2017/”;

谢谢

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

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;
创建外部表test1
(
台站阵列,
SCHEMESUSPENDED字符串,
时间加载时间戳
)
行格式SERDE'org.apache.hive.hcatalog.data.JsonSerDe'
位置“/user/andres/hive/bixihistorical/”;
在路径“/user/andres/datasets/bixi2017/”中加载数据
覆盖到表test1中;

我试着看了一下我在帖子中的例子。因此,我所做的是在创建表中瞄准文件存储库的位置!!谢谢
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;