google-bigquery - 如何跳过 BIGQUERY 加载 API 中的 csv 文件行

标签 google-bigquery google-cloud-storage

我正在尝试使用 BigQuery API 将 CSV 数据从云存储桶加载到 BigQuery 表 我的代码是:

def load_data_from_gcs(dataset_name, table_name, source):
    bigquery_client = bigquery.Client()
    dataset = bigquery_client.dataset(dataset_name)
    table = dataset.table(table_name)
    job_name = str(uuid.uuid4())

    job = bigquery_client.load_table_from_storage(
        job_name, table, source)
    job.sourceFormat = 'CSV'
    job.fieldDelimiter = ','
    job.skipLeadingRows = 2

    job.begin()
    job.result()  # Wait for job to complete

    print('Loaded {} rows into {}:{}.'.format(
        job.output_rows, dataset_name, table_name))

    wait_for_job(job)

它给我错误:

400 CSV table encountered too many errors, giving up. Rows: 1; errors: 1.

此错误是因为,我的 csv 文件包含前两行作为标题信息,不应加载。我给了 job.skipLeadingRows = 2 但它没有跳过前两行。 是否有任何其他语法来设置跳过行?

请帮忙解决这个问题。

最佳答案

你拼错了(使用驼峰式而不是下划线)。它是 skip_leading_rows,而不是 skipLeadingRowsfield_delimitersource_format 相同。

查看 Python 源代码 here .

关于google-bigquery - 如何跳过 BIGQUERY 加载 API 中的 csv 文件行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46262244/

相关文章:

python - 将数据从 Google Cloud Storage 流式传输到 FTP 服务器

csv - 将 CSV 文件从 Google Drive 加载到 BigQuery

sql - 使用 Big Query 从每个组中选择第一行并按计数

sql - 使用嵌套和重复字段获取最新的列值

google-cloud-platform - 如何流式传输存储在谷歌云存储桶中的视频?

ruby-on-rails - 如何从部署在 k8s 中的 Rails 应用程序向 Google Cloud 进行身份验证

node.js - 谷歌云 - 有谁知道如何将 Node js应用程序部署到 Node js实例

google-bigquery - BigQuery 中针对大型数据集的 RANK 或 ROW_NUMBER

python - BigQuery,使用 python 客户端加载包含重复字段的数据帧

mysql - 将具有 STR_TO_DATE 的查询转换为 BigQuery 语法