扫描 parquet federated table 时出现 INT32 类型错误。错误或预期行为?
INT32 type error when scanning parquet federated table. Bug or Expected behavior?
我正在使用 BigQuery 查询外部数据源(也称为联合 table),其中源数据是存储在 google 中的蜂巢分区镶木地板 table云储存。我用 this guide 来定义 table.
我测试此 table 的第一个查询如下所示
SELECT * FROM my_dataset.my_table WHERE year=2019 AND day = "2019-01-01" LIMIT 10
此查询失败并出现以下错误
Column visitor_partition has type INT64, which differs from the expected type of INT32
我想知道为什么会出现此错误以及如何变通或解决它。我使用 parquet-tools
库进行了一些调查,以查看镶木地板数据的内部结构。
当我 运行 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 类型?
请注意,外部 table 的模式是从与 table 的源 URI 匹配的所有文件列表中按文件名字典顺序排序的最后一个文件推断出来的。
因此,您案例中的特定 Parquet 文件有可能与您描述的架构不同,例如, "visitor_partition" 字段具有 DATE 逻辑类型的 INT32 列 - BigQuery 将其推断为 DATE 类型。
我正在使用 BigQuery 查询外部数据源(也称为联合 table),其中源数据是存储在 google 中的蜂巢分区镶木地板 table云储存。我用 this guide 来定义 table.
我测试此 table 的第一个查询如下所示
SELECT * FROM my_dataset.my_table WHERE year=2019 AND day = "2019-01-01" LIMIT 10
此查询失败并出现以下错误
Column visitor_partition has type INT64, which differs from the expected type of INT32
我想知道为什么会出现此错误以及如何变通或解决它。我使用 parquet-tools
库进行了一些调查,以查看镶木地板数据的内部结构。
当我 运行 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 类型?
请注意,外部 table 的模式是从与 table 的源 URI 匹配的所有文件列表中按文件名字典顺序排序的最后一个文件推断出来的。 因此,您案例中的特定 Parquet 文件有可能与您描述的架构不同,例如, "visitor_partition" 字段具有 DATE 逻辑类型的 INT32 列 - BigQuery 将其推断为 DATE 类型。