【问题标题】:Google Big Query Streaming data errorGoogle Bigquery 流数据错误
【发布时间】:2013-12-16 13:29:53
【问题描述】:

我正在使用 (see here) 将我们的数据存储日志加载到大查询 (BQ),并将数据存储实体导出到大查询运行良好,但是我被困在将数据流式传输到大查询中。错误指向 BigQueryIngester.java 中的相关行:

response = bigquery.tabledata().insertAll(projectId, datasetId, tableId, content).execute();

它正在提高NullPointerException,我不知道出了什么问题。有人可以给我一个提示

Uncaught exception from servlet java.lang.NullPointerException  at
 com.fasterxml.jackson.core.json.UTF8JsonGenerator._writeFieldName(UTF8JsonGenerator.java:289)
    at
 com.fasterxml.jackson.core.json.UTF8JsonGenerator.writeFieldName(UTF8JsonGenerator.java:179)
    at
 com.google.api.client.json.jackson2.JacksonGenerator.writeFieldName(JacksonGenerator.java:73)
    at
 com.google.api.client.json.JsonGenerator.serialize(JsonGenerator.java:171)
    at
 com.google.api.client.json.JsonGenerator.serialize(JsonGenerator.java:172)
    at
 com.google.api.client.json.JsonGenerator.serialize(JsonGenerator.java:145)
    at
 com.google.api.client.json.JsonGenerator.serialize(JsonGenerator.java:172)
    at
 com.google.api.client.json.JsonGenerator.serialize(JsonGenerator.java:106)
    at
 com.google.api.client.http.json.JsonHttpContent.writeTo(JsonHttpContent.java:78)
    at
 com.google.api.client.http.GZipEncoding.encode(GZipEncoding.java:49)
    at
 com.google.api.client.http.HttpEncodingStreamingContent.writeTo(HttpEncodingStreamingContent.java:51)
    at com.google.api.client.util.IOUtils.computeLength(IOUtils.java:113)
    at
 com.google.api.client.http.HttpRequest.execute(HttpRequest.java:917)
    at
 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
    at
 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
    at
 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
    at
 com.streak.logging.utils.BigqueryIngester.streamingRowIngestion(BigqueryIngester.java:54)
    at
 com.streak.logging.analysis.LogExportDirectToBigqueryTask.doGet(LogExportDirectToBigqueryTask.java:178)

【问题讨论】:

  • 请编辑您的问题。现在一团糟。
  • 抱歉,我认为错误日志很有用
  • 它们,但不是这种格式。
  • 完整的错误日志被移动到 pastebin 中。 pastebin.com/YMCfCvwe :-)
  • 不要指望我们点击链接。

标签: java google-app-engine google-bigquery


【解决方案1】:

看起来错误是在 json 请求中写入字段名称之一。您的行可能有问题。可能是您有不可解析的嵌套数据,或者您缺少名称对象映射的键。您可以打印一个示例并将其添加到问题或您的 pastebin 链接中吗?

【讨论】:

  • 我在调用 bigquery.tabledata().insertAll() 之前放置了一个日志记录: System.out.println("content: " + content.toPrettyString());并且 json 中的键之一为空。所以你是对的。我将 null 值追溯到返回 null 的字段导出器 getFieldName(int i) 并将其更改为以字符串形式返回字段名称。这解决了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-13
相关资源
最近更新 更多