Parquet文件在配置单元中显示空值



将表从mysql导入parquet,然后在hive中创建外部表。不知怎的,当我查询hive上的外部表时,它会将所有值显示为null。尽管镶木地板工具cat xyz。镶木地板文件正确显示了内容。我哪里做错了?

sqoop import --connect jdbc:mysql://quickstart.cloudera:3306/retail_db 
--username root --password cloudera 
--table order_items --split-by page_id 
--target-dir hdfs:/user/cloudera/proj/order_items 
--compress --compression-codec snappy 
--as-parquetfile 
--num-mappers 1
Create external table hiveorderitems_par
(ord_item_id int, 
ord_item_ord_id int, 
ord_item_prod_id int, 
ord_item_quantity int, 
ord_item_subtotal float,  
order_item_prod_price float) 
row format SERDE 'parquet.hive.serde.ParquetHiveSerDe' 
STORED AS INPUTFORMAT "parquet.hive.DeprecatedParquetInputFormat" 
OUTPUTFORMAT "parquet.hive.DeprecatedParquetOutputFormat" 
location "/user/cloudera/proj/order_items";
hive> select * from hiveorderitems_par;
NULL    NULL    NULL    NULL    NULL    NULL
NULL    NULL    NULL    NULL    NULL    NULL
NULL    NULL    NULL    NULL    NULL    NULL
Time taken: 0.225 seconds, Fetched: 172198 row(s)
hive> 

您需要确保在创建表期间使用的名称与要导入的表中的名称匹配。它应该能解决问题。

在Hive 0.14之前,镶木地板的名称区分大小写。你可以在这里找到详细信息

我遇到了类似的问题,并通过确保蜂窝柱和镶木地板柱都是小写来解决

最新更新