Google bigquery 将数据流模板GCS调试到BigQuery
我遇到了一些难以调试的奇怪错误。我正在运行一个简单的UDF JavaScript映射器,它映射JSON数据并将其导入BigQuery。我以前运行过其他UDF函数,从未遇到过这样的错误 是否有任何方法(使用实际的调试器或至少使用console.log或类似工具)调试数据流模板UDF错误 有关错误:Google bigquery 将数据流模板GCS调试到BigQuery,google-bigquery,google-cloud-dataflow,Google Bigquery,Google Cloud Dataflow,我遇到了一些难以调试的奇怪错误。我正在运行一个简单的UDF JavaScript映射器,它映射JSON数据并将其导入BigQuery。我以前运行过其他UDF函数,从未遇到过这样的错误 是否有任何方法(使用实际的调试器或至少使用console.log或类似工具)调试数据流模板UDF错误 有关错误: 异常:“java.lang.RuntimeException:org.apache.beam.sdk.util.UserCodeException:java.lang.RuntimeException
异常:“java.lang.RuntimeException:org.apache.beam.sdk.util.UserCodeException:java.lang.RuntimeException:java.lang.RuntimeException:org.json.jsoneException:JSONObject文本必须在1处以“{”开头[字符2第1行]
位于com.google.cloud.dataflow.worker.GroupAlsoByWindowsParDoFn$1.output(GroupAlsoByWindowsParDoFn.java:183)
位于com.google.cloud.dataflow.worker.GroupAlsoByWindowFnRunner$1.outputWindowedValue(GroupAlsoByWindowFnRunner.java:101)
位于com.google.cloud.dataflow.worker.util.BatchGroupAlSobyIndowerShufflefn.processElement(BatchGroupAlSobyIndowerShufflefn.java:54)
位于com.google.cloud.dataflow.worker.util.BatchGroupAlSobyIndowerShufflefn.processElement(BatchGroupAlSobyIndowerShufflefn.java:37)
位于com.google.cloud.dataflow.worker.GroupAlsoByWindowFnRunner.invokeproceselement(GroupAlsoByWindowFnRunner.java:114)
...
很难说这个错误是关于什么的:这是格式错误的输入数据还是从UDF输出JSON?
到目前为止,我已经尝试了所有方法:
- 使用样本数据对UDF进行局部单元测试
- 使用我试图在真实环境中分析的完全相同的文件运行集成测试
- 在输入上使用空JSON(使用空对象
){}
- 使用返回空JSON对象的UDF函数
这些Java类的源代码是否在任何在线位置都可用?在本例中,罪魁祸首是BigQuery模式,需要将其包装到JSON对象中:
{
"BigQuery Schema": [
... schema goes here
]
}
以下代码可能对调试有用:
请参阅repo:从云控制台将示例模式复制到云存储上的文本文件到BigQuery模板时要小心:它会带来
BigQuery模式
,单词之间有两个空格
我收到了一个java.lang.RuntimeException:org.json.jsoneException:JSONObject[“BigQuery Schema”]未找到
多次,然后才弄清楚发生了什么,使用了一个基于这样一个云控制台示例的模式…对我来说也很有效!不需要将数组命名为“BigQuery Schema”,但[template instructions]()一定要说这个名字是必需的,所以很容易漏掉。