【问题标题】:Google BigQuery cannot read some ORC dataGoogle BigQuery 无法读取某些 ORC 数据
【发布时间】:2021-03-06 02:20:09
【问题描述】:

我正在尝试通过 bq load/bq mk 将存储在 GCS 中的 ORC 数据文件加载到 BigQuery 中,并遇到以下错误。通过 hadoop discp 命令从本地集群的 Hive 实例版本 1.2 复制的数据文件。大多数 orc 文件都已成功加载,但很少有。当我从 Hive 读取这些数据时没有问题。

我使用的命令:

$ bq load --source_format ORC hadoop_migration.pm hive/part-v006-o000-r-00000_a_17 

Upload complete. 

Waiting on bqjob_r7233761202886bd8_00000175f4b18a74_1 ... (1s) Current status: DONE 

BigQuery error in load operation: Error processing job '<project>-af9bd5f6:bqjob_r7233761202886bd8_00000175f4b18a74_1': Error while reading data, error message: 

The Apache Orc library failed to parse metadata of stripes with error: failed to open /usr/share/zoneinfo/GMT-00:00 - No such file or directory 

确实,没有这样的文件,我认为不应该。

Google 不知道此错误消息,但我在这里发现了类似的问题:https://issues.apache.org/jira/browse/ARROW-4966。本地服务器有一种解决方法,可以创建指向 /usr/share/zoneinfo/GMT-00:00 的符号链接。但我在云端。

此外,我发现如果我通过 orc-tools 从 orc 文件中提取数据为 json 格式,我可以将该 json 文件加载到 BigQuery 中。所以我怀疑问题不在数据本身。

有人遇到过这样的问题吗?

【问题讨论】:

    标签: google-cloud-platform hive google-bigquery orc


    【解决方案1】:

    谷歌官方支持位置如下。简而言之,BigQuery 不理解某些时区的描述,我们建议在数据中对其进行更改。我们的解决方法是将 ORC 数据转换为 parquet,然后将其加载到表中。


    确实会发生此错误。此外,当您尝试从 BigQuery Cloud Console 执行查询时,例如:

    select timestamp('2020-01-01 00:00:00 GMT-00:00')
    

    你会得到同样的错误。它不仅与 ORC 导入有关,它也是 BigQuery 理解时间戳的方式。 BigQuery 支持 [1] 中所述的各种表示形式。所以:

    “2020-01-01 00:00:00 GMT-00:00”  -- incorrect timestamp string literal
    “2020-01-01 00:00:00 abcdef”     -- incorrect timestamp string literal
    “2020-01-01 00:00:00-00:00”      -- correct timestamp string literal
    

    在您的情况下,问题在于 ORC 文件中的时区表示。我想它是由某些外部系统以这种方式生成的。如果您能够获得前面空格替换为“-00:00”的“GMT-00:00”字符串,那将是正确的时区名称。您可以将生成文件的系统配置更改为具有适当的时区字符串吗?

    创建符号链接只是掩盖问题并不能正确解决问题。在 BigQuery 的情况下,这是不可能的。

    最好的问候, 谷歌云支持

    [1]https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#time_zones

    【讨论】:

      猜你喜欢
      • 2018-12-05
      • 1970-01-01
      • 2016-04-25
      • 2021-11-23
      • 2015-04-20
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多