Я пытаюсь создать шаблон для чтения из 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>