首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法确定表的架构,以便使用python从本地上载到bigquery

无法确定表的架构,以便使用python从本地上载到bigquery
EN

Stack Overflow用户
提问于 2020-09-02 14:35:55
回答 1查看 1.8K关注 0票数 2

我正在尝试使用python将文件本地上传到bigquery中。每当我运行它时,我都会得到一个错误。

代码语言:javascript
复制
ValueError: Could not determine schema for table 
Table(TableReference(DatasetReference('database-150318', 'healthanalytics'), 'pres_kmd'))'. Call client.get_table() or pass in a list of schema fields to the selected_fields argument.
代码语言:javascript
复制
client = bigquery.Client(project="database-150318")
job_config = bigquery.LoadJobConfig(autodetect=True)
table_ref = client.dataset('healthanalytics').table('pres_kmd')
table = client.get_table(table_ref)
#table = dataset.table("test_table")
    
deidrows = []
for filename in glob.glob('/Users/janedoe/kmd/health/*dat.gz'):
    with gzip.open(filename) as f:
        for line in f:
            #line = line.decode().strip().split('|')
            deidrows.append(line)
        client.insert_rows(table, deidrows)
        pdb.set_trace()

谁能帮上忙吗?我已经想过,如果我把自动检测装置放进去,它就会假设。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2020-09-02 16:35:17

您可以尝试以下示例:

代码语言:javascript
复制
import csv
client = bigquery.Client()
table_ref = client.dataset('bq_poc').table('new_emp')
table = client.get_table(table_ref)

filename = "data.csv"
with open(filename) as f:
    for line in f:
        reader = csv.reader(f, skipinitialspace=True)
        rows = [[int(row[0]), str(row[1]), int(row[2])] for row in reader]
    client.insert_rows(table, rows)

注:

没有使用

  1. job_config,可以删除
  2. 数据,需要将其转换成特定的格式(称为rows)

)。

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

https://stackoverflow.com/questions/63707851

复制
相关文章

相似问题

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