按列分区的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 并将数据插入其中所采取的步骤:

  1. 运行 创建以下查询 table 调用 'date_partitioned':

    create table date_partitioned
    (tpep_dropoff_datetime string, trip_distance double)
    partitioned by (passenger_count int);
    
  2. 运行 以下查询将数据插入 '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 吗?也许您只是对全零进行采样?