无法查询(来自Hive)在Pig中创建的Parquet文件

时间:2015-09-18 20:39:21

标签: hadoop hive apache-pig parquet

我在Pig中创建了一个Parquet文件(在outputset目录中)

grunt> STORE extracted INTO './outputset' USING ParquetStorer;

该文件有1 Record,如下所示,

grunt> mydata = LOAD './outputset/part-r-00000.parquet' using ParquetLoader;
grunt> dump mydata;
(val1,val2,val3)
grunt> describe mydata;
mydata: {val_0: chararray,val_1: chararray,val_2: chararray}

在此之后,我在 Hive 中创建了一个外部表来读取此文件,

CREATE EXTERNAL TABLE parquet_test (
 field1 string,
 field2 string,
 field3 string) 
STORED AS PARQUET
LOCATION '/home/.../outputset';

当我查询表格时,我可以检索1 Record,,但所有字段都是NULL,如下所示,

hive> select * from parquet_test;
NULL    NULL    NULL

我在这里缺少什么?

PS:

Pig version : 0.15.0
Hive version : 1.2.1

1 个答案:

答案 0 :(得分:0)

您需要将pig中的确切字段名称与配置单元中的列匹配。

So your hive should look like
CREATE EXTERNAL TABLE parquet_test (
 val1 string,
 val2 string,
 val3 string) 
STORED AS PARQUET
LOCATION '/home/.../outputset';