Невозможно загрузить на сцену Snowflake с помощью Talend, NoSuchMethodError

Я использую Talend для создания файла, а затем загружаю его на этап Snowflake перед заполнением базы данных. Я успешно подключаюсь, но эта ошибка возникает при попытке ЗАГРУЗИТЬ файл:

Exception in thread "Thread-2" java.lang.NoSuchMethodError: org.apache.avro.Schema.getLogicalType()Lorg/apache/avro/LogicalType;
    at org.talend.daikon.avro.LogicalTypeUtils.isLogicalDate(LogicalTypeUtils.java:74)
    at org.talend.codegen.enforcer.IncomingSchemaEnforcer.put(IncomingSchemaEnforcer.java:446)
    at org.talend.codegen.enforcer.IncomingSchemaEnforcer.put(IncomingSchemaEnforcer.java:379)

Я предполагаю, что класс, используемый в Talend, не соответствует классу, используемому в Snowflake, но я могу ошибаться и не знаю, как это исправить, даже если я прав. Как исправить эту ошибку?


person Jeffrey Sanda    schedule 29.01.2021    source источник
comment
Вы используете последнюю версию драйвера Snowflake JDBC и правильный ли путь к файлам .jar? Или ваш Talend поставляется с фиксированным драйвером JDBC (и, возможно, вы можете обновить свой Talend, чтобы обновить драйвер)? Если я помню, у версий JDBC 3.11 были некоторые проблемы, поэтому я рекомендую перейти к последней версии 3.12 и установить любые переменные пути к классам.   -  person Suzy Lockwood    schedule 30.01.2021
comment
Вы используете определенные компоненты Snowflake в Talend или общие компоненты JDBC?   -  person NickW    schedule 30.01.2021


Ответы (1)


Вероятно, у вас есть две или более версий jar-файлов Avro на пути к вашему классу, а загруженная версия слишком старая и не имеет реализованного LogicalType. Похоже, что логические типы появились в Avro v1.8.0.

https://issues.apache.org/jira/browse/AVRO-1497

person Nick White    schedule 05.02.2021