我正在使用 Hortonworks 在 HIVE 中创建分区表并使用 HIVE 中的另一个表将数据插入其中。问题是,在我将数据插入到我创建的表中之后,结果表中分区列 (passenger_count) 中的所有值都显示为 0,即使原始表中的值都不为 0。
以下是我创建分区表并向其中插入数据所采取的步骤:
运行以下查询以创建名为“date_partitioned”的表:
create table date_partitioned (tpep_dropoff_datetime string, trip_distance double) partitioned by (passenger_count int);
运行以下查询以将数据从另一个现有表插入“date_partitioned”表:
INSERT INTO TABLE date_partitioned PARTITION (passenger_count) SELECT tpep_dropoff_datetime, trip_distance, passenger_count FROM trips_raw;
“trips_raw”的列类型和示例值如下面的屏幕截图所示:
如您所见,'passenger_count' 列是 int 类型并且包含非零值。但是当我查看“date_partitioned”表的结果时,“passenger_count”列的值都显示为 0。该表还创建了一个重复的“passenger_count”(因此它有 2 个“passenger_count”列,其中一个为空).从下面的截图可以看出:
任何建议将不胜感激。我很好奇为什么当原始列没有 0 时结果表中的 'passenger_count' 显示为 0,以及为什么结果表中有一个额外的 'passenger_count' 列。
最佳答案
您确定为 passenger_count 加载的所有行都是 0 吗?您可以在两个表上执行 COUNT 和 GROUP BY passenger_count 吗?也许您只是对全零进行采样?
关于hadoop - 按列分区的HIVE从另一张表插入数据后全0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52359265/