在Python脚本中忽略了BigQuery Use_Avro_Logical_Types

BigQuery use_avro_logical_types ignored in Python script(在Python脚本中忽略了BigQuery Use_Avro_Logical_Types)
本文介绍了在Python脚本中忽略了BigQuery Use_Avro_Logical_Types的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用一个Python脚本将avro文件加载到BigQuery。这个过程本身是成功的,但我在让BigQuery在创建表期间使用Avro的逻辑数据类型时遇到了一些问题。

Googlehere记录了这些逻辑类型的使用,并将其添加到google-cloud-python库here。

我的职业不是程序员,但我希望下面的片段是正确的……但是,USE_AVRO_LOGICAL_TYPE属性似乎已被忽略,并且时间戳被加载为int而不是时间戳。

...    
with open(full_name, 'rb') as source_file:
           var_job_config = google.cloud.bigquery.job.LoadJobConfig()
           var_job_config.source_format = 'AVRO'
           var_job_config.use_avro_logical_types = True
           job = client.load_table_from_file(
               source_file, table_ref, job_config=var_job_config)
        job.result()  # Waits for job to complete
...

avro架构如下:

{
    "type": "record",
    "name": "table_test",
    "fields": [{
        "name": "id_",
        "type": {
            "type": "bytes",
            "logicalType": "decimal",
            "precision": 29,
            "scale": 0
        }
    },
    {
        "name": "datetime_",
        "type": ["null",
        {
            "type": "long",
            "logicalType": "timestamp-micros"
        }]
    },
    {
        "name": "integer_",
        "type": ["null",
        {
            "type": "bytes",
            "logicalType": "decimal",
            "precision": 29,
            "scale": 0
        }]
    },
    {
        "name": "varchar_",
        "type": ["null",
        {
            "type": "string",
            "logicalType": "varchar",
            "maxLength": 60
        }]
    },
    {
        "name": "capture_time",
        "type": {
            "type": "long",
            "logicalType": "timestamp-millis"
        }
    },
    {
        "name": "op_type",
        "type": "int"
    },
    {
        "name": "seq_no",
        "type": {
            "type": "string",
            "logicalType": "varchar",
            "maxLength": 16
        }
    }]
}

有没有人能详细说明一下这个问题?谢谢!

推荐答案

显然,我的Python库没有我想象的那么及时。更新我的谷歌云库解决了这个问题。感谢您的意见shollyman

这篇关于在Python脚本中忽略了BigQuery Use_Avro_Logical_Types的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)