Исключение при чтении BigQuery из шаблона потока данных с использованием ValueProvider - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь создать шаблон для чтения из BigQuery, к сожалению, я получаю исключение при попытке создать шаблон.

Произошло исключение при выполнении класса Java.Невозможно вызвать validate, если таблица установлена ​​динамически.

Чтение документации , похоже, что при чтении BigQuery из пакетного шаблона вызывается специальная функция:

Примечание : Если вы хотите запустить пакетный конвейер, который читает из BigQuery, вы должны использовать .withTemplateCompatibility () для всех операций чтения BigQuery.

Итак, вот мой фрагмент кода:

PCollection<Discount> discountFromBigQuery = p.apply("Parse Discounts from BigQuery", BigQueryIO.read((SerializableFunction<SchemaAndRecord, Discount>) record -> {
        GenericRecord row = record.getRecord();
        return new Discount(row);
    }).withTemplateCompatibility().from(options.getBigQueryDiscountPath()).withCoder(SerializableCoder.of(Discount.class)));

Очевидно, options.getBigQueryDiscountPath() - это ValueProvider<String>

Итак, как я могу избавиться от этой ошибки и шаблон BigQueryчасть чтения?

Вот зависимости maven, которые я использую:

<dependency>
    <groupId>org.apache.beam</groupId>
    <artifactId>beam-sdks-java-core</artifactId>
    <version>2.8.0</version>
</dependency>
<dependency>
    <groupId>org.apache.beam</groupId>
    <artifactId>beam-sdks-java-io-google-cloud-platform</artifactId>
    <version>2.8.0</version>
</dependency>
<dependency>
    <groupId>com.google.cloud.dataflow</groupId>
    <artifactId>google-cloud-dataflow-java-sdk-all</artifactId>
    <version>2.5.0</version>
</dependency>

1 Ответ

0 голосов
/ 28 ноября 2018

Я считаю, что ошибка, с которой вы сталкиваетесь, определена здесь .Обратите внимание на объяснение, в котором упоминается

Обратите внимание, что проверка таблицы или запроса может завершиться неудачно, если таблица или набор данных созданы на более ранних этапах конвейера или если запрос зависит от более ранних этапов конвейера.

Чтобы преодолеть это, попробуйте добавить метод без проверки в вызове BigQueryIO.read.

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