使用 Python 将 Google Cloud Storage 中的数据加载到 BigQuery 时,如何强制忽略双引号?

Posted

技术标签:

【中文标题】使用 Python 将 Google Cloud Storage 中的数据加载到 BigQuery 时,如何强制忽略双引号?【英文标题】:How to force double quotes to be ignored when loading data from Google Cloud Storage into BigQuery using Python? 【发布时间】:2018-11-17 01:03:32 【问题描述】:

我们正在尝试将数据加载到 BigQuery 中,但双引号会导致问题。

根据this question on SO,可以通过设置参数configuration.load.quote = ""来忽略双引号。给出了如何从命令行执行此操作的示例。

我们尝试添加 job_config.load.quote = "" 但我们收到一个错误,即 job_config 没有名为 load 的方法。

我们在使用 Python 时如何设置 load.quote 参数?

到目前为止,这是我们的代码:

dataset_id = 'our_dataset_id'
dataset_ref = bigquery_client.dataset(dataset_id)

job_config = bigquery.LoadJobConfig()
job_config.skip_leading_rows = 0 
job_config.source_format = bigquery.SourceFormat.CSV

uri = 'gs://our/bucket/path.csv'

load_job = bigquery_client.load_table_from_uri(
    uri,
    dataset_ref.table('our_destination_table'),
    job_config=job_config
    )  
print('Starting job '.format(load_job.job_id))
load_job.result() 

【问题讨论】:

【参考方案1】:

我们发现命令行命令和 Python API 之间的参数不一致,这就是它们失败的原因。

添加这一行:

job_config.quote_character = ""

这里是作业配置的 Python 参数链接:https://googleapis.github.io/google-cloud-python/latest/bigquery/generated/google.cloud.bigquery.job.LoadJobConfig.html#google.cloud.bigquery.job.LoadJobConfig.quote_character

【讨论】:

以上是关于使用 Python 将 Google Cloud Storage 中的数据加载到 BigQuery 时,如何强制忽略双引号?的主要内容,如果未能解决你的问题,请参考以下文章

我如何将我的Python代码链接到Google Cloud的服务?我应该使用哪种服务?

将 python 对象上传到 Google Cloud Storage 而不将其保存到文件

使用 Python 将 Google Cloud Storage 中的数据加载到 BigQuery 时,如何强制忽略双引号?

将 Django 连接到 Google Cloud SQL

使用 Python 向 Google Cloud Storage 写入流式传输

如何将 Google Cloud Firestore 本地模拟器用于 python 和测试目的