如果与函数一起使用,Hive不返回任何值

时间:2017-02-28 11:53:41

标签: hadoop hive apache-spark-sql hiveql apache-tez

我有一个奇怪的问题与hive shell。我使用Apache原始包创建了一个Hadoop系统。我用tez。

为了测试系统我将NY出租车数据加载到配置单元中没有任何问题。该数据集约有1100万行。如果我在hive shell中选择staments它正在工作。如果我使用这样的函数

select count(*) from yellow;

select sum(trip_distance) from yellow where trip_distance is not null;

该过程没有任何问题,但只返回OK。如果我在spark-sql中做同样的事情,我会得到答案。此外,如果我按分组语句进行分组,结果是相同的。

表定义是

CREATE TABLE `default.yellow` ( `VendorID` int , `tpep_pickup_datetime` timestamp , `tpep_dropoff_datetime` timestamp , `passenger_count` bigint , `trip_distance` float , `pickup_longitude` float , `pickup_latitude` float , `RatecodeID` bigint , `store_and_fwd_flag` string , `dropoff_longitude` float , `dropoff_latitude` float , `payment_type` bigint , `fare_amount` int , `extra` float , `mta_tax` float , `tip_amount` int , `tolls_amount` bigint , `improvement_surcharge` float , `total_amount` float ) COMMENT "yellow" stored as ORC

这是ORC格式。我也使用了Parquet,但结果没有区别。

如果算上一行,其他表格也只显示OK结果。

以下是一些示例行,如上所述,这是我用于测试的免费纽约出租车数据。

2,2016-06-09 21:06:36.0,2016-06-09 21:13:08.0,2,0.79,-73.98336,40.760937,1,N,-73.97746,40.75398,2,6,0.5,0.5,0,0,0.3,7.3
2,2016-06-09 21:06:36.0,2016-06-09 21:35:11.0,1,5.22,-73.98172,40.736668,1,N,-73.981636,40.670242,1,22,0.5,0.5,4,0,0.3,27.3
2,2016-06-09 21:06:36.0,2016-06-09 21:13:10.0,1,1.26,-73.994316,40.751072,1,N,-74.004234,40.74217,1,6,0.5,0.5,1,0,0.3,9.36
2,2016-06-09 21:06:36.0,2016-06-09 21:36:10.0,1,7.39,-73.98236,40.77389,1,N,-73.92947,40.85154,1,26,0.5,0.5,1,0,0.3,28.3

1 个答案:

答案 0 :(得分:0)

好的,这是解决方案。 Hive和tez日志显示也没有问题。 tez给出的行数也是正确的。

所以唯一可能的问题可能是hive和tez之间的沟通。由于一些未知的原因,mapred-site.xml没有任何价值,因为在开始它已经设置。在我将它设置回正确值的纱线后,它起作用了。