Как передать файл схемы в виде макросов в приемник BigQuery при объединении данных - PullRequest
1 голос
/ 23 мая 2019

Я создаю конвейер слияния данных для загрузки данных CSV из GCS в BigQuery для моего случая использования. Мне нужно создать макросы свойств и предоставить значение во время выполнения.Необходимо понять, как мы можем передать файл схемы в виде макросов в приемник BigQuery.Если я просто передаю путь к файлу схемы json в значения макросов, я получаю следующую ошибку:

java.lang.IllegalArgumentException: неверная схема: используйте JsonReader.setLenient (true), чтобы принять искаженный JSON в строке 1 столбца 1

1 Ответ

3 голосов
/ 23 мая 2019

В настоящее время нет способа использовать содержимое файла в качестве значения макроса, хотя существует jira, открытая для чего-то подобного (https://issues.cask.co/browse/CDAP-15424). Ожидается, что содержимое схемы должно быть установлено как значение макросаВ настоящее время пользовательский интерфейс не очень хорошо обрабатывает эти типы значений макросов (https://issues.cask.co/browse/CDAP-15423),, поэтому я бы предложил установить его через конечную точку REST (https://docs.cdap.io/cdap/6.0.0/en/reference-manual/http-restful-api/preferences.html#H2290),, где имя приложения - это имя конвейера. * 1007).*

В качестве альтернативы, вы можете сделать свой конвейер немного более общим, написав плагин Action, который будет выглядеть примерно так:

@Override
public void run(ActionContext context) throws Exception {
  String schema = readFileContents();
  context.getArguments().setArgument(key, schema);
}

Плагин будет первым этапом в вашем конвейере и позволит последующие этапыв вашем конвейере использовать $ {key} в качестве макроса, который будет заменен реальной схемой.

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