【发布时间】:2019-02-20 21:04:19
【问题描述】:
我正在使用 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' 列。
【问题讨论】:
-
事实证明,正如@justcode 在他的回答中提到的那样,源数据中确实有一些passenger_count 为0,并且它们恰好都显示在示例预览页面中。
标签: hadoop hive hdfs hortonworks-sandbox