首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >谷歌BigQuery对Avro logicalTypes的支持

谷歌BigQuery对Avro logicalTypes的支持
EN

Stack Overflow用户
提问于 2018-05-09 09:39:12
回答 1查看 1.3K关注 0票数 2

正如谷歌所宣称的,不支持从Avro logicalType转换到BigQuery特定类型(如描述的在底部)。

但是,我能够用以下模式加载Avro文件:

代码语言:javascript
运行
复制
schema = {
    'name': 'test',
    'namespace': 'testing',
    'type': 'record',
    'fields': [
        {'name': 'test_timestamp', 'type': 'long', 'logicalType': 'timestamp-millis'},
    ],
}

在BigQuery上使用类型为时间戳的列。

情况与以下模式不同:

代码语言:javascript
运行
复制
schema = {
    'name': 'test',
    'namespace': 'testing',
    'type': 'record',
    'fields': [
        {'name': 'testdate', 'type': 'int', 'logicalType': 'date'},
    ],
} 

和BigQuery表,其列类型为DATE。我使用bq的方式如下(在这两种情况下):

代码语言:javascript
运行
复制
bq --location=EU load --source_format=AVRO --project_id=test-project dataset.table "gs://bucket/test_file.avro"

但它失败了,只有例外:

代码语言:javascript
运行
复制
Field testdate has changed type from DATE to INTEGER

logicalTypes是否有可能得到BigQuery的支持,或者是否有任何优雅的方法来解决这种情况?(我知道使用临时表的变通方法,还有将时间戳转换为日期的BQL select,但它并不是很漂亮:P)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-09 11:17:35

对于Avro逻辑类型的本地理解现在对所有BigQuery用户都是公开的。有关详细信息,请参阅此处的文档页:类型

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50250141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档