【问题标题】:Debugging Dataflow template GCS to BigQuery将 Dataflow 模板 GCS 调试到 BigQuery
【发布时间】:2018-10-29 02:03:07
【问题描述】:

我遇到了一些难以调试的奇怪错误。我正在运行一个简单的 UDF JavaScript 映射器,它映射 JSON 数据并将其导入 BigQuery。我之前运行过其他 UDF 函数,从未遇到过此类错误。

有什么方法可以调试(使用实际调试器或至少使用 console.log 或类似工具)Dataflow 模板 UDF 错误?

有问题的错误: exception: "java.lang.RuntimeException: org.apache.beam.sdk.util.UserCodeException: java.lang.RuntimeException: java.lang.RuntimeException: org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1] at com.google.cloud.dataflow.worker.GroupAlsoByWindowsParDoFn$1.output(GroupAlsoByWindowsParDoFn.java:183) at com.google.cloud.dataflow.worker.GroupAlsoByWindowFnRunner$1.outputWindowedValue(GroupAlsoByWindowFnRunner.java:101) at com.google.cloud.dataflow.worker.util.BatchGroupAlsoByWindowReshuffleFn.processElement(BatchGroupAlsoByWindowReshuffleFn.java:54) at com.google.cloud.dataflow.worker.util.BatchGroupAlsoByWindowReshuffleFn.processElement(BatchGroupAlsoByWindowReshuffleFn.java:37) at com.google.cloud.dataflow.worker.GroupAlsoByWindowFnRunner.invokeProcessElement(GroupAlsoByWindowFnRunner.java:114) ...

很难说这个错误是关于什么的:这个输入数据是格式错误还是从 UDF 输出 JSON?

到目前为止,我已经尝试了所有方法:

  • 使用示例数据在本地对 UDF 进行单元测试
  • 使用我尝试在真实环境中分析的完全相同的文件运行集成测试
  • 在输入中使用了空 JSON(带有空对象 {}
  • 使用了返回空 JSON 对象的 UDF 函数

非常感谢任何有关调试 Dataflow UDF Javascript 的提示。

这些 Java 类的源代码是否可以在线获得?

【问题讨论】:

    标签: google-bigquery google-cloud-dataflow


    【解决方案1】:

    从 Cloud Console 将示例架构复制到 Cloud Storage 上的文本文件到 BigQuery 模板时要小心:它会带来 BigQuery Schema,单词之间有两个空格。

    在弄清楚发生了什么之前,我多次收到java.lang.RuntimeException: org.json.JSONException: JSONObject["BigQuery Schema"] not found,使用的是基于此类 Cloud Console 示例的架构...

    【讨论】:

      【解决方案2】:

      在这种情况下,罪魁祸首原来是 BigQuery Schema,需要将其包装到 JSON 对象中:

      {
        "BigQuery Schema": [
          ... schema goes here
        ]
      }
      

      以下代码可用于调试: TextIOToBigQuery.java

      查看回购:https://github.com/GoogleCloudPlatform/DataflowTemplates

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-02
      • 2020-01-25
      • 1970-01-01
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多