Hadoop 无法查询(从配置单元)Pig中创建的拼花地板文件

Hadoop 无法查询(从配置单元)Pig中创建的拼花地板文件,hadoop,hive,apache-pig,parquet,Hadoop,Hive,Apache Pig,Parquet,我已经在Pig中创建了一个拼花地板文件(在目录outputset中) 该文件有1条记录,如下所示 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: char

我已经在Pig中创建了一个拼花地板文件(在目录
outputset
中)

该文件有
1条记录
,如下所示

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}
在此之后,我在配置单元中创建了一个外部表来读取此文件

CREATE EXTERNAL TABLE parquet_test (
 field1 string,
 field2 string,
 field3 string) 
STORED AS PARQUET
LOCATION '/home/.../outputset';
当我查询表时,我能够检索
1记录,
,但所有字段都是
NULL
,如下所示

hive> select * from parquet_test;
NULL    NULL    NULL
我错过了什么

附言:


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

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

val1
val2
val3
chararray
的数据类型是吗?@GoBrewers14是的val1、val2和val3是chararray
Pig version : 0.15.0
Hive version : 1.2.1
So your hive should look like
CREATE EXTERNAL TABLE parquet_test (
 val1 string,
 val2 string,
 val3 string) 
STORED AS PARQUET
LOCATION '/home/.../outputset';