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

时间:2018-08-30 15:38:06

标签: google-cloud-platform google-bigquery

我已将具有30万行的CSV文件从GCS上传到BigQuery,并收到以下错误消息:

error_image

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

我已经更改了创建表配置以允许4000个错误,并且该配置可以正常工作,因此消息中的3894行一定是有问题的,但是此错误消息并不能告诉我很多有关行或原因的信息。

谢谢

5 个答案:

答案 0 :(得分:21)

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

bq --format=prettyjson show -j <JobID>

它返回带有更多详细信息的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"

答案 1 :(得分:6)

您应该能够在BigQuery UI中单击Job History,然后单击失败的加载作业。我刚刚尝试加载无效的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)

第一个只是表示失败的一般消息,但是第二个错误(来自“错误流”)是为失败提供更多上下文的消息,即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>

答案 2 :(得分:1)

使用python客户端

from google.api_core.exceptions import BadRequest

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

    for er in err.errors:
        print(err)
    raise
    # or alternatively
    # job.errors

答案 3 :(得分:0)

按照其余答案,您还可以在GCP日志(堆栈驱动器)工具中看到此信息。

但是可能无法回答您的问题。似乎有详细的错误(例如发现的一个Elliot错误)和更不精确的错误。不管您使用哪种UI进行浏览,都完全没有描述。

答案 4 :(得分:0)

你也可以这样做。

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

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