BigQuery - 我在哪里可以找到错误流?

Ary*_*azz 15 google-bigquery google-cloud-platform

我已经上传了一个包含从GCS到BigQuery的300K行的CSV文件,并收到以下错误:

error_image

我在哪里可以找到错误流?

我已经更改了create table配置以允许4000个错误并且它有效,所以它必须是消息中3894行的问题,但是这个错误消息并没有告诉我很多关于哪些行或为什么.

谢谢

Ary*_*azz 25

我终于通过在终端中运行以下命令来查看错误流:

bq --format=prettyjson show -j <JobID>
Run Code Online (Sandbox Code Playgroud)

它返回一个包含更多详细信息的JSON.在我的情况下它是:

"message": "Error while reading data, error message: Could not parse '16.66666666666667' as int for field Course_Percentage (position 46) starting at location 1717164"
Run Code Online (Sandbox Code Playgroud)

  • 我的一份工作有 1k+ badRecords,但只显示 status.error[] 中的 5 项。如何查看其他不良记录的所有错误? (2认同)

Ell*_*ard 7

您应该能够Job History在BigQuery UI中单击,然后单击失败的加载作业.我刚刚尝试加载无效的CSV文件,我看到的错误是:

Errors:
Error while reading data, error message: CSV table encountered too many errors, giving up. Rows: 1; errors: 1. Please look into the error stream for more details. (error code: invalid)
Error while reading data, error message: CSV table references column position 1, but line starting at position:0 contains only 1 columns. (error code: invalid)
Run Code Online (Sandbox Code Playgroud)

第一个是仅指示失败的通用消息,但第二个错误(来自"错误流")是为失败提供更多上下文的错误,即CSV table references column position 1, but line starting at position:0 contains only 1 columns.

编辑:给定作业ID,您还可以使用BigQuery CLI查看有关失败的完整信息.你会用:

bq --format=prettyjson show -j <job ID>
Run Code Online (Sandbox Code Playgroud)

  • @Thanks Elliot,但我发现只有一行.它具有行的编号,但不显示错误的原因. (2认同)

Rob*_*eth 7

使用python客户端它是

from google.api_core.exceptions import BadRequest

job = client.load_table_from_file(*args, **kwargs)
try:
    result = job.result()
except BadRequest as ex:

    for err in ex.errors:
        print(err)
    raise
    # or alternatively
    # job.errors
Run Code Online (Sandbox Code Playgroud)


Fas*_*ous 7

你也可以这样做。

try:
    load_job.result()  # Waits for the job to complete.
except ClientError as e:
    print(load_job.errors)
    raise e
Run Code Online (Sandbox Code Playgroud)

这会将错误打印到屏幕上,或者您可以记录它们等。