【问题标题】:Snowpark calling pre-compiled Java UDFsSnowpark 调用预编译的 Java UDF
【发布时间】:2021-06-29 14:13:41
【问题描述】:

我正在研究一个非常简单的 Snowflake 示例,以从 Intellij 调用预编译的 Java UDF。我用我的 Java UDF 制作了一个 jar,想从 Intellij 调用它,我试图在雪花上执行 UDF。

我想知道如何将这个 jar 上传到雪花中?

    session.udf.registerTemporary("sampleJUdf", 
        "C:\\project_existing\\snowpark\\src\\main\\Java\\myjarfile.jar")

【问题讨论】:

  • 真正的问题是什么?
  • 哎呀错过了,我想知道如何将这个 jar 从 Intellij 上传到雪花中?
  • Snowpark 自动完成,无需手动操作。
  • 你能分享更多关于上下文的信息吗?这应该是自动处理的,不是吗?错误信息是什么?

标签: java snowflake-cloud-data-platform user-defined-functions


【解决方案1】:

例如,您可以使用 Session.addDependency() 上传 jar 文件

session.addDependency("C:\\project_existing\\snowpark\\src\\main\\Java\\myjarfile.jar")

然后您需要引用您在 myjarfile.jar 中将由 UDF 使用的函数的名称,例如

session.udf.registerTemporary("sampleJUdf", myFunc)

如果 jar 是您正在运行的应用程序的一部分,SNowpark 应该会自动尝试上传它,但您需要在代码中导入它并在 registerTemporary 中引用函数的名称。

更多详情请见https://docs.snowflake.com/en/developer-guide/snowpark/creating-udfs.html#specifying-dependencies-for-a-udf

【讨论】:

  • 嗨,Mats,感谢您的回复,这很有帮助,我可以将罐子添加到雪花阶段。我们可以通过给函数名来创建命名的udf或注册永久的udf(我打算单独创建我的函数,需要20-30行代码)?这样我可以为其他用户以及数据服务公开 udf。如果可以的话怎么办?
  • 是的,通过使用 session.udf.registerPermanent 但是您还需要定义一个阶段,例如,如果您在数据库和架构中有一个名为 mystage 的阶段,则您正在添加 UDF对你做 session.udf.registerPermanent("sampleJUdf", myFunc, "mystage")
猜你喜欢
  • 2015-06-01
  • 1970-01-01
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-13
  • 1970-01-01
相关资源
最近更新 更多