Iignore在BigQuery中有一个糟糕的CSV记录

时间:2015-04-09 04:51:56

标签: java json google-bigquery

如何在BigQuery中跳过CSV文件中的错误记录?我尝试过使用这些功能:

configLoad.setMaxBadRecords(10);

configLoad.getMaxBadRecords();

我在输入CSV中有一条不良记录。但是当我使用上面的函数并且代码失败而不是忽略坏记录时,代码返回null

1 个答案:

答案 0 :(得分:1)

我怀疑这里的问题在于如何检查成功与错误。

乔布斯将其当前状态恢复为:

  state: PENDING|RUNNING|DONE
  errorResult: { ... }
  errors: [{...}, {...}, ...]

当作业处于DONE状态时,errorResult确定作业是否总体成功(没有出现errorResult)或失败(errorResult字段中的结构化错误)。

errors列表中的错误将包含遇到的所有致命和非致命错误。

以下是成功完成的加载作业的示例状态结果,该加载作业包含1个错误行,并且在加载作业配置上设置了setMaxBadRecords(10):

"status": {
    "errors": [
      {
        "location": "File: 0 / Line:1", 
        "message": "Too many columns: expected 2 column(s) but got 3 column(s). For additional help: http://goo.gl/RWuPQ", 
        "reason": "invalid"
      }
    ], 
    "state": "DONE"
  }, 

如果没有setMaxResults,它将是一个失败的工作,如下所示:

"status": {
    "errorResult": {
      "message": "Too many errors encountered. Limit is: 0.", 
      "reason": "invalid"
    }, 
    "errors": [
      {
        "location": "File: 0 / Line:1", 
        "message": "Too many columns: expected 2 column(s) but got 3 column(s). For additional help: http://goo.gl/RWuPQ", 
        "reason": "invalid"
      }, 
      {
        "message": "Too many errors encountered. Limit is: 0.", 
        "reason": "invalid"
      }
    ], 
    "state": "DONE"
  },