无法使用python将JSON文件从google云存储加载到bigquery

2024-09-29 01:35:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从我的Google云存储导出一个文件到googlebigquery,但是遇到了很多问题。在

#standardSQL
import json
import argparse
import time
import uuid

from google.cloud import bigquery
from google.cloud import storage

dataset = 'dataworks-356fa'
source = 'gs://dataworks-356fa-backups/pullnupload.json'

def load_data_from_gcs(dataset, test10, source ):
    bigquery_client = bigquery.Client(dataset)
    dataset = bigquery_client.dataset('FirebaseArchive')
    table = dataset.table(test10)
    job_name = str(uuid.uuid4())

    job= bigquery_client.load_table_from_storage(
        job_name, table, "gs://dataworks-356fa-backups/pullnupload.json")
    job.source_format = 'NEWLINE_DELIMITED_JSON'
    job.begin()

    # wait_for_job(job)
    print("state of job is: " + job.state)
#     print("errors: " + job.errors)

load_data_from_gcs(dataset, 'test10', source)

wait_for_job(job)行没有被注释掉时,我收到这个错误

^{pr2}$

print("errors: " + job.errors)没有被注释掉时,我收到了这个错误。在

Traceback (most recent call last): 
File "cloudtobq.py", line 42, in <module> 
load_data_from_gcs(dataset, 'test10', source) 
File "cloudtobq.py", line 40, in load_data_from_gcs 
print("errors: " + job.errors) 
TypeError: cannot concatenate 'str' and 'NoneType' objects

当两者都被注释掉时,这是我收到的,然后被返回到原来的终端屏幕。在

Wess-MacBook-Pro:desktop wesstephens$ python cloudtobq.py
state of job is: RUNNING
Wess-MacBook-Pro:desktop wesstephens$

Tags: fromimportjsonsourcedatatablejobload
1条回答
网友
1楼 · 发布于 2024-09-29 01:35:56

{需要包含^ a1}函数的定义:

def wait_for_job(job):
    while True:
        job.reload()
        if job.state == 'DONE':
            if job.error_result:
                raise RuntimeError(job.errors)
            return
        time.sleep(1)

您不需要打印job.errors,因为如果作业不成功,wait_for_job将引发异常。在

相关问题 更多 >