【问题标题】:Cannot upload to Snowflake stage using Talend, NoSuchMethodError无法使用 Talend 上传到 Snowflake 阶段,NoSuchMethodError
【发布时间】:2021-01-29 20:38:17
【问题描述】:

我正在使用 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 中使用的类不匹配,但我可能错了,即使我是对的也不知道如何解决它。我该如何解决这个错误?

【问题讨论】:

  • 您使用的是最新的 Snowflake JDBC 驱动程序吗?您的 .jar 文件路径是否正确?或者您的 Talend 是否带有固定的 JDBC 驱动程序(也许您可以升级您的 Talend 以升级驱动程序)?如果我记得 JDBC 的 3.11 版本有一些问题,所以我建议跳到最新的 3.12 并设置任何类路径变量。
  • 您使用的是 Talend 中的特定 Snowflake 组件还是通用 JDBC 组件?

标签: java snowflake-cloud-data-platform talend nosuchmethoderror


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-28
    • 2020-08-28
    • 1970-01-01
    • 2020-12-21
    • 2018-06-15
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    相关资源
    最近更新 更多