Hadoop 从另一个表插入数据后,按列分区的配置单元变为全部0

Hadoop 从另一个表插入数据后,按列分区的配置单元变为全部0,hadoop,hive,hdfs,hortonworks-sandbox,Hadoop,Hive,Hdfs,Hortonworks Sandbox,我正在使用Hortonworks在配置单元中创建分区表,并使用配置单元中的另一个表将数据插入其中。问题是,在我将数据插入到我创建的表中之后,结果表中分区列(passenger_count)中的所有值都显示为0,即使原始表中没有一个值是0 以下是我创建分区表并向其中插入数据所采取的步骤: 运行以下查询以创建名为“date\u partitioned”的表: create table date_partitioned (tpep_dropoff_datetime string, trip_dista

我正在使用Hortonworks在配置单元中创建分区表,并使用配置单元中的另一个表将数据插入其中。问题是,在我将数据插入到我创建的表中之后,结果表中分区列(passenger_count)中的所有值都显示为0,即使原始表中没有一个值是0

以下是我创建分区表并向其中插入数据所采取的步骤:

  • 运行以下查询以创建名为“date\u partitioned”的表:

    create table date_partitioned
    (tpep_dropoff_datetime string, trip_distance double)
    partitioned by (passenger_count int);
    
  • 运行以下查询,将数据从另一个现有表插入“date\u partitioned”表:

    INSERT INTO TABLE date_partitioned
    PARTITION (passenger_count)
    SELECT tpep_dropoff_datetime, trip_distance, passenger_count
    FROM trips_raw;
    
  • “trips_raw”的列类型和示例值如以下屏幕截图所示:

    如您所见,“乘客计数”列是int类型,包含非零值。但当我查看“date_partitioned”表的结果时,“passenger_count”列的值都显示为0。该表还创建了一个重复的“乘客计数”(因此它有2个“乘客计数”列,其中一个为空)。您可以从下面的屏幕截图中看到:


    如有任何建议,将不胜感激。我很好奇,为什么当原始列没有0时,“乘客计数”在结果表中显示为0,为什么在结果表中有一个额外的“乘客计数”列。

    您确定为乘客计数加载的所有行都是0吗?你能在两张桌子上进行计数和分组吗?也许您只是在对所有零进行采样?

    您确定为乘客计数加载的所有行都是0吗?你能在两张桌子上进行计数和分组吗?也许你只是对所有的零进行采样?

    结果是,正如@justcode在他的回答中提到的,一些乘客计数在源数据中确实是0,并且它们碰巧都显示在示例预览页面中。结果是,正如@justcode在他的回答中提到的,一些乘客计数在源数据中确实是0,它们碰巧出现在示例预览页面中。