【发布时间】:2020-07-22 00:00:41
【问题描述】:
我正在使用 BigQuery 查询外部数据源(也称为联合表),其中源数据是存储在 google 云存储中的 hive 分区 parquet 表。我使用this guide 来定义表格。
我测试此表的第一个查询如下所示
SELECT * FROM my_dataset.my_table WHERE year=2019 AND day = "2019-01-01" LIMIT 10
此查询失败并出现以下错误
列 visitor_partition 的类型为 INT64,与预期的 INT32 类型不同
我想知道为什么会出现这个错误以及如何解决它或解决它。我使用parquet-tools 库进行了一些调查,以窥探我的镶木地板数据的内部结构。
当我在我的一个 parquet 文件上运行 java -jar ./parquet-tools-1.10.0.jar meta test.c000.gz.parquet | grep visitor_partition 时,会返回以下相关行
visitor_partition: OPTIONAL INT64 R:0 D:1
visitor_partition: INT64 GZIP DO:0 FPO:59420041 SZ:54561/537912/9.86 VC:633590 ENC:BIT_PACKED,PLAIN_DICTIONARY,RLE ST:[min: 0, max: 99, num_nulls: 0]
当我运行架构命令时,会出现以下相关架构信息optional int64 visitor_partition;
很明显,在这个 parquet 文件中,visitor_partition 字段的数据表示为 INT64。那么为什么 BigQuery 期望在这里看到 INT32 类型呢?
【问题讨论】:
标签: google-bigquery parquet parquet-mr