【问题标题】:Not able to query(from Hive) Parquet file created in Pig无法查询(来自 Hive)在 ​​Pig 中创建的 Parquet 文件
【发布时间】:2015-09-18 20:39:21
【问题描述】:

我在 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

【问题讨论】:

  • val1val2val3chararray的数据类型吗?
  • @GoBrewers14 是的 val1、val2 和 val3 是字符数组

标签: hadoop hive apache-pig parquet


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 2019-02-18
    相关资源
    最近更新 更多