无法使用 Talend 上传到 Snowflake 阶段,NoSuchMethodError

问题描述

我正在使用 Talend 创建一个文件,然后在填充数据库之前将其上传到 SNowflake 阶段。 我已成功连接,但是当我尝试 PUT 文件时会生成错误

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 中使用的类不匹配,但我可能是错的,即使我是对的也不知道如何解决。如何修复此错误

解决方法

您的类路径上可能有两个或更多版本的 Avro jar,并且加载的版本太旧并且没有实现 LogicalType。看起来逻辑类型是在 Avro v1.8.0 左右出现的。

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