Отладка шаблона потока данных GCS в BigQuery - PullRequest
0 голосов
/ 18 мая 2018

Я получаю некоторые странные ошибки, которые трудно отладить.Я использую простой 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?

1 Ответ

0 голосов
/ 20 мая 2018

В этом случае виновником оказалась схема BigQuery, которую необходимо обернуть в объект JSON:

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

Следующий код может быть полезен для отладки: TextIOToBigQuery.java

См. Репо: https://github.com/GoogleCloudPlatform/DataflowTemplates

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...