我几乎没有以 Parquet 格式存储在HDFS中的文件,并且我试图在配置单元中创建一个新的外部表,该表应该指向该数据文件。
因此,我使用以下命令在 hive 中创建了一个表:
CREATE EXTERNAL TABLE ORDERS_P (
ORDERID INT,
ORDER_DATE BIGINT,
CUSTOMER_ID INT,
STATUS STRING)
STORED AS PARQUET
LOCATION 'hdfs:///user/cloudera/retail/parquet/orders';
表已创建,但是当我在 hive 中对表运行查询时-
SELECT * FROM ORDERS_P LIMIT 10
它返回除ORDER_DATE列以外的所有NULL值-
NULL 1402729200000 NULL NULL
NULL 1402729200000 NULL NULL
NULL 1402729200000 NULL NULL
NULL 1402729200000 NULL NULL
NULL 1402729200000 NULL NULL
NULL 1402729200000 NULL NULL
NULL 1402729200000 NULL NULL
NULL 1402729200000 NULL NULL
NULL 1402729200000 NULL NULL
NULL 1402729200000 NULL NULL
我使用spark-shell验证了这些文件中是否存在数据。不知道我在做什么错。任何帮助表示赞赏。
最佳答案
您可能需要将您的配置单元版本升级到1.2或最新版本(在1.1.0或更早版本中),不支持 Parquet 的所有数据类型。
请检查link,在1.2.0之后添加了支持。
关于scala - 在Hive表中加载 Parquet 文件将返回所有NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40093728/