Google cloud platform Google BigQuery无法读取某些ORC数据

Google cloud platform Google BigQuery无法读取某些ORC数据,google-cloud-platform,hive,google-bigquery,orc,Google Cloud Platform,Hive,Google Bigquery,Orc,我试图通过bq load/bq mk将存储在GCS中的ORC数据文件加载到BigQuery中,但遇到以下错误。通过hadoop discp命令从prem cluster的配置单元实例1.2版上复制的数据文件。大多数orc文件已成功加载,但很少有文件未成功加载。当我从Hive读取这些数据时没有问题 我使用的命令: $ bq load --source_format ORC hadoop_migration.pm hive/part-v006-o000-r-00000_a_17 Upload c

我试图通过bq load/bq mk将存储在GCS中的ORC数据文件加载到BigQuery中,但遇到以下错误。通过hadoop discp命令从prem cluster的配置单元实例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 
$bq load--source_格式ORC hadoop_migration.pm hive/part-v006-o000-r-00000_a_17
上传完成。
正在等待bqjob_7233761202886BD8_u00000175F4B18A74_1。。。(1s)当前状态:完成
加载操作中的BigQuery错误:处理作业时出错“-af9bd5f6:bqjob_r7233761202886bd8_00000175f4b18a74_1”:读取数据时出错,错误消息:
Apache Orc库无法分析条带的元数据,错误为:无法打开/usr/share/zoneinfo/GMT-00:00-没有此类文件或目录
事实上,没有这样的文件,我认为不应该有

谷歌不知道这个错误消息,但我在这里发现了类似的问题:。对于创建指向/usr/share/zoneinfo/GMT-00:00的sym链接的prem服务器,有一个解决方案。但我在云端

此外,我发现如果我通过orc工具将orc文件中的数据提取为json格式,我就能够将该json文件加载到BigQuery中。所以我怀疑问题不在数据本身


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

下面是谷歌官方的支持立场。简而言之,BigQuery不理解某些时区的描述,我们建议在数据中更改它。我们的解决方法是将ORC数据转换为拼花地板,然后将其加载到表中


事实上,这种错误是可能发生的。此外,当您尝试从BigQuery云控制台执行查询时,例如:

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]