hadoop - 按列分区的HIVE从另一张表插入数据后全0

标签 hadoop hive hdfs hortonworks-sandbox

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

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

  1. 运行以下查询以创建名为“date_partitioned”的表:

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

    INSERT INTO TABLE date_partitioned
    PARTITION (passenger_count)
    SELECT tpep_dropoff_datetime, trip_distance, passenger_count
    FROM trips_raw;
    

“trips_raw”的列类型和示例值如下面的屏幕截图所示: enter image description here enter image description here

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

enter image description here enter image description here

任何建议将不胜感激。我很好奇为什么当原始列没有 0 时结果表中的 'passenger_count' 显示为 0,以及为什么结果表中有一个额外的 'passenger_count' 列。

最佳答案

您确定为 passenger_count 加载的所有行都是 0 吗?您可以在两个表上执行 COUNT 和 GROUP BY passenger_count 吗?也许您只是对全零进行采样?

关于hadoop - 按列分区的HIVE从另一张表插入数据后全0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52359265/

相关文章:

java - 在映射器中逐行从 HDFS 读取文本文件

hadoop - Hive-在regexp_replace中用$替换时出错

java - 如何刷新HBase中的表

hdfs - 在 Windows 上使用 miniDFSCluster 时出错

hadoop - Hive 安装问题 : NoClassDefFoundError

apache - 如何或在何处运行$ ./nutch注入(inject)crawl/crawldb url

hadoop - 通过Hadoop的WinSCP终端

hadoop - 来自 CSV 的 Hive 表。引号中的行终止

xml - Spark 中多列的横向 View /分解,获取重复项

hadoop - 合流:Hdfs转换为avro格式,但是在 hive 中读取avro文件时,我的时间比 “timezone”提前5:30小时: “Asia/Kolkata”