python2.7&GCP Google BigQuery:捕获文件加载错误?

2024-09-29 17:13:35 发布

您现在位置:Python中文网/ 问答频道 /正文

所有人

我得到了一些python2.7biqquery(BQ)数据加载“操作就绪”,我正在努力寻找正确的方法来捕捉文件加载错误,这种方式与我过去使用的其他大数据仓库平台类似。在

在BQ中,我可以从中访问错误,示例如下:bigquery_client.load_table_from_uri.错误


{
    {'reason': 'invalid', 
        'message': "Could not parse 'r2501' as int for field lineNum (position 0) starting at location 56708 ", 
        'location': 'gs://bucketNameHere/fake-data.csv'} 
    {'reason': 'invalid', 
        'message': 'CSV table references column position 2, but line starting at position:56731 contains only 2 columns.', 
        'location': 'gs://bucketNameHere/fake-data.csv'}
    {'reason': 'invalid', 
        'message': "Could not parse 'a' as int for field lineNum (position 0) starting at location 56734 ", 
        'location': 'gs://bucketNameHere/fake-data.csv'}
    {'reason': 'invalid', 
        'message': "Could not parse 'a' as int for field lineNum (position 0) starting at location 56739 ", 
        'location': 'gs://bucketNameHere/fake-data.csv'}
    {'reason': 'invalid', 
        'message': 'CSV table references column position 1, but line starting at position:56751 contains only 1 columns.', 
        'location': 'gs://bucketNameHere/fake-data.csv'}
}

这很好,但我确实需要一点更好的信息,特别是错误的行号,这是我遇到的主要问题。在

在Redshift中:stl_loaderror_detail&stl_load_errorshttp://docs.aws.amazon.com/redshift/latest/dg/r_STL_LOAD_ERRORS.html

在雪花数据库中:加载历史记录和表(验证(表名,作业id=>;''u last');https://docs.snowflake.net/manuals/sql-reference/functions/validate.html

总之,我需要加载我能加载的数据(将max_bad_记录设置得相当高),当记录失败时,我需要知道:

  1. 加载的文件名(如果我加载通配符文件),则 当前提供
  2. 发生错误的行号,目前不提供,但字节嵌入在消息中-“起始位置”或“位置:”。我真的需要行号作为独立元素
  3. 错误消息,这是提供的,并且当前消息大于adequet

如有任何指导,我们将不胜感激。在

谢谢,贝斯特…里奇

另外,我会继续写一个包含我的加载脚本的评论,我认为我获取统计数据的方式可能会对人们有所帮助,因为我花了一段时间才弄清楚。在

p.s.s.公司。 在Linux上运行并设置GOOGLE_APPLICATION_凭据 python 2.7

库版本如下:

^{pr2}$

Tags: csvgsmessagedata错误tablepositionlocation
1条回答
网友
1楼 · 发布于 2024-09-29 17:13:35

BigQuery不报告错误的行号是因为文件被许多工作线程并行地拆分和解析。假设一个worker负责文件的偏移量10000~20000,它将寻求10000并从那里开始解析。当它无法解析一行时,它只知道该行的起始偏移量。要知道行号,需要从文件的开头开始扫描。在

你可以找出给定起始偏移量的直线。您需要行号有什么特别的原因吗?在

相关问题 更多 >

    热门问题