Я получаю некоторые странные ошибки, которые трудно отладить.Я использую простой UDF JavaScript Mapper, который отображает данные JSON и импортирует их в BigQuery.Ранее я запускал другие функции UDF и никогда не сталкивался с такими ошибками.
Есть ли способ отладки (с помощью фактического отладчика или, по крайней мере, с console.log или аналогичного) ошибок 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)
...
Очень трудно сказать, о чем эта ошибка: это входные данные, которые неправильно отформатированы или выводят JSON из UDF?
Я уже все перепробовал:
- Блок локально протестировал UDF с примером данных
- Запустите интеграционные тесты с тем же файлом, который я пытаюсь выполнитьанализировать в реальной среде
- Использовать пустой JSON на входе (с пустым объектом
{}
) - Использовать функцию UDF, которая возвращает пустой объект JSON
Любые советы по отладке Dataflow UDF Javascript будет высоко оценен.
Доступен ли где-нибудь онлайн исходный код этих классов Java?