Google bigquery 中的最大错误记录

max bad records in Google bigquery

当我尝试使用 Google Python Api 客户:

{u'state': u'DONE', u'errors': [{u'reason': u'invalid', u'message': u'Too many errors encountered. Limit is: {1}.'},
{u'reason': u'invalid', u'message': u'Too many values in row starting at position:64490 in file:/gzip/subrange/gs://my-bucket/myfile.csv.gz'}],
u'errorResult': {u'reason': u'invalid', u'message': u'Too many errors encountered. Limit is: {1}.'}}

我的问题是我在api请求中指定要允许100个错误,使用maxBadRecords参数,如下:

    MAX_BAD_RECORDS = 100
    body_query = {
        'jobReference': {
            'projectId': self.project_id,
            'jobId': self._job_id
        },
        'configuration': {
            'load': {
                'destinationTable': {
                    'projectId': self.destination_table.project_id,
                    'datasetId': self.destination_table.dataset.id,
                    'tableId': self.destination_table.id,
                },
                'fieldDelimiter': self.delimiter,
                'maxBadRecords': MAX_BAD_RECORDS,
                'schema': {
                    'fields': self.schema
                },
                'sourceUris': self.source_uris,
                'skipLeadingRows': self.skip_leading_rows_number,
                'writeDisposition': self.write_disposition,
                "createDisposition": self.create_disposition,
            }
        }
    }

我认为 Google bigQuery python API 有一个错误,它没有考虑我的 MAX_BAD_RECORDS 设置为 100。

有人可以帮助我吗?

我认为 BQ 确实尊重了您的 MAX_BAD_RECORDS,否则您将看不到 "Too many errors" 消息。 “{1}”可能是一个占位符,应该用实际限制替换但不知何故错过了。