按列分区的HIVE从另一个table插入数据后变为全0
HIVE partitioned by column becomes all 0 after inserting data from another table
我正在使用 Hortonworks 在 HIVE 中创建分区 table 并使用 HIVE 中的另一个 table 将数据插入其中。问题是,在我将数据插入我创建的 table 后,结果 table 中分区列 (passenger_count) 中的所有值都显示 0,即使 none原始 table 中的值为 0。
以下是我创建分区 table 并将数据插入其中所采取的步骤:
运行 创建以下查询 table 调用 'date_partitioned':
create table date_partitioned
(tpep_dropoff_datetime string, trip_distance double)
partitioned by (passenger_count int);
运行 以下查询将数据插入 'date_partitioned' table,来自另一个现有的 table:
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' table 的结果时,'passenger_count' 列的值都显示为 0。table 还创建了一个重复的 'passenger_count' (所以它有 2 'passenger_count' 列,其中一列是空的)。从下面的截图可以看出:
如有任何建议,我们将不胜感激。我很好奇为什么当原始列没有 0 时 'passenger_count' 在结果 table 中显示 0,以及为什么在结果 table 中有一个额外的 'passenger_count' 列。
您确定为 passenger_count 加载的所有行都是 0 吗?您可以在两个表上执行 COUNT 和 GROUP BY passenger_count 吗?也许您只是对全零进行采样?
我正在使用 Hortonworks 在 HIVE 中创建分区 table 并使用 HIVE 中的另一个 table 将数据插入其中。问题是,在我将数据插入我创建的 table 后,结果 table 中分区列 (passenger_count) 中的所有值都显示 0,即使 none原始 table 中的值为 0。
以下是我创建分区 table 并将数据插入其中所采取的步骤:
运行 创建以下查询 table 调用 'date_partitioned':
create table date_partitioned (tpep_dropoff_datetime string, trip_distance double) partitioned by (passenger_count int);
运行 以下查询将数据插入 'date_partitioned' table,来自另一个现有的 table:
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' table 的结果时,'passenger_count' 列的值都显示为 0。table 还创建了一个重复的 'passenger_count' (所以它有 2 'passenger_count' 列,其中一列是空的)。从下面的截图可以看出:
如有任何建议,我们将不胜感激。我很好奇为什么当原始列没有 0 时 'passenger_count' 在结果 table 中显示 0,以及为什么在结果 table 中有一个额外的 'passenger_count' 列。
您确定为 passenger_count 加载的所有行都是 0 吗?您可以在两个表上执行 COUNT 和 GROUP BY passenger_count 吗?也许您只是对全零进行采样?