我已将具有30万行的CSV文件从GCS上传到BigQuery,并收到以下错误消息:
我在哪里可以找到错误流?
我已经更改了创建表配置以允许4000个错误,并且该配置可以正常工作,因此消息中的3894行一定是有问题的,但是此错误消息并不能告诉我很多有关行或原因的信息。
谢谢
答案 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
这会将错误打印到屏幕上,或者您可以记录它们等。