所有人
我得到了一些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_记录设置得相当高),当记录失败时,我需要知道:
如有任何指导,我们将不胜感激。在
谢谢,贝斯特…里奇
另外,我会继续写一个包含我的加载脚本的评论,我认为我获取统计数据的方式可能会对人们有所帮助,因为我花了一段时间才弄清楚。在
p.s.s.公司。 在Linux上运行并设置GOOGLE_APPLICATION_凭据 python 2.7
库版本如下:
^{pr2}$
BigQuery不报告错误的行号是因为文件被许多工作线程并行地拆分和解析。假设一个worker负责文件的偏移量10000~20000,它将寻求10000并从那里开始解析。当它无法解析一行时,它只知道该行的起始偏移量。要知道行号,需要从文件的开头开始扫描。在
你可以找出给定起始偏移量的直线。您需要行号有什么特别的原因吗?在
相关问题 更多 >
编程相关推荐