如何从 Snowpark scala maven 应用程序构建可执行 jar 并从命令行运行

发布于 2025-01-19 09:11:10 字数 5159 浏览 3 评论 0原文

我能够为火花应用程序和Java应用程序构建一个罐子,但是对于Snowpark应用程序而言,同样的功能也不适用。我想知道,如何从Snowpark Scala应用程序中构建可执行的JAR并从命令行运行。我能够构建JAR,但无法

在下面执行form命令行是我的错误

Exception in thread "main" net.snowflake.client.jdbc.SnowflakeSQLException: User Error Report: 
Java Stack Trace:
java.lang.RuntimeException: java.lang.ClassNotFoundException: us.company.snowpark.etl.HashProcessor
        at function_handler_0//com.snowflake.snowpark.internal.JavaUtils$.doDeserializeAndCloseInputStream(JavaUtils.scala:351)
        at function_handler_0//com.snowflake.snowpark.internal.JavaUtils$.deserialize(JavaUtils.scala:335)
        at function_handler_0//com.snowflake.snowpark.internal.JavaUtils.deserialize(JavaUtils.scala)
        at function_handler_0//SnowUDF.<init>(InlineCode.java:12)
Caused by: java.lang.ClassNotFoundException: us.company.snowpark.etl.HashProcessor
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:398)
        at java.base/java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:745)
        at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1965)
        at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1851)
        at java.base/java.io.ObjectInputStream.readClass(ObjectInputStream.java:1814)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1639)
        at java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2434)
        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2328)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2166)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1668)
        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:482)
        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:440)
        at function_handler_0//com.snowflake.snowpark.internal.JavaUtils$.doDeserializeAndCloseInputStream(JavaUtils.scala:348)
        ... 3 more
 in function SNOWPARK_TEMP_FUNCTION_KTVPWBIRM0FSHTU with handler SnowUDF.compute
        at net.snowflake.client.jdbc.SnowflakeUtil.checkErrorAndThrowExceptionSub(SnowflakeUtil.java:127)
        at net.snowflake.client.jdbc.SnowflakeUtil.checkErrorAndThrowException(SnowflakeUtil.java:67)
        at net.snowflake.client.core.StmtUtil.pollForOutput(StmtUtil.java:442)
        at net.snowflake.client.core.StmtUtil.execute(StmtUtil.java:345)
        at net.snowflake.client.core.SFStatement.executeHelper(SFStatement.java:487)
        at net.snowflake.client.core.SFStatement.executeQueryInternal(SFStatement.java:198)
        at net.snowflake.client.core.SFStatement.executeQuery(SFStatement.java:135)
        at net.snowflake.client.core.SFStatement.execute(SFStatement.java:781)
        at net.snowflake.client.core.SFStatement.execute(SFStatement.java:677)
        at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQueryInternal(SnowflakeStatementV1.java:238)
        at net.snowflake.client.jdbc.SnowflakePreparedStatementV1.executeQuery(SnowflakePreparedStatementV1.java:117)
        at com.snowflake.snowpark.internal.ServerConnection.$anonfun$runQueryGetResult$1(ServerConnection.scala:358)
        at com.snowflake.snowpark.internal.ServerConnection.withValidConnection(ServerConnection.scala:810)
        at com.snowflake.snowpark.internal.ServerConnection.runQueryGetResult(ServerConnection.scala:353)
        at com.snowflake.snowpark.internal.ServerConnection.runQuery(ServerConnection.scala:336)
        at com.snowflake.snowpark.Session.runQuery(Session.scala:781)
        at com.snowflake.snowpark.internal.UDXRegistrationHandler.createJavaUDF(UDXRegistrationHandler.scala:735)
        at com.snowflake.snowpark.internal.UDXRegistrationHandler.$anonfun$registerUDF$5(UDXRegistrationHandler.scala:117)
        at com.snowflake.snowpark.internal.UDXRegistrationHandler.retryAfterFixingClassPath(UDXRegistrationHandler.scala:54)
        at com.snowflake.snowpark.internal.UDXRegistrationHandler.$anonfun$registerUDF$4(UDXRegistrationHandler.scala:99)
        at com.snowflake.snowpark.internal.UDXRegistrationHandler.withUploadFailureCleanup(UDXRegistrationHandler.scala:169)
        at com.snowflake.snowpark.internal.UDXRegistrationHandler.registerUDF(UDXRegistrationHandler.scala:99)
        at com.snowflake.snowpark.UDFRegistration.register(UDFRegistration.scala:2368)
        at com.snowflake.snowpark.functions$.registerUdf(functions.scala:2998)
        at com.snowflake.snowpark.functions$.udf(functions.scala:3110)
        at us.company.snowpark.etl.HashProcessor.<init>(HashProcessor.scala:228)
        at us.company.snowpark.app.SnowparkAppDriver$.main(SnowparkAppDriver.scala:24)
        at us.company.snowpark.app.SnowparkAppDriver.main(SnowparkAppDriver.scala)

I am able to build a jar for spark applications and java applications, but the same is not working for the snowpark applications. I would like to know, How to build executable jar from snowpark scala application and run from command line. I m able to build jar but not able to execute form command line

Below is my error

Exception in thread "main" net.snowflake.client.jdbc.SnowflakeSQLException: User Error Report: 
Java Stack Trace:
java.lang.RuntimeException: java.lang.ClassNotFoundException: us.company.snowpark.etl.HashProcessor
        at function_handler_0//com.snowflake.snowpark.internal.JavaUtils$.doDeserializeAndCloseInputStream(JavaUtils.scala:351)
        at function_handler_0//com.snowflake.snowpark.internal.JavaUtils$.deserialize(JavaUtils.scala:335)
        at function_handler_0//com.snowflake.snowpark.internal.JavaUtils.deserialize(JavaUtils.scala)
        at function_handler_0//SnowUDF.<init>(InlineCode.java:12)
Caused by: java.lang.ClassNotFoundException: us.company.snowpark.etl.HashProcessor
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:398)
        at java.base/java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:745)
        at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1965)
        at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1851)
        at java.base/java.io.ObjectInputStream.readClass(ObjectInputStream.java:1814)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1639)
        at java.base/java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2434)
        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2328)
        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2166)
        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1668)
        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:482)
        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:440)
        at function_handler_0//com.snowflake.snowpark.internal.JavaUtils$.doDeserializeAndCloseInputStream(JavaUtils.scala:348)
        ... 3 more
 in function SNOWPARK_TEMP_FUNCTION_KTVPWBIRM0FSHTU with handler SnowUDF.compute
        at net.snowflake.client.jdbc.SnowflakeUtil.checkErrorAndThrowExceptionSub(SnowflakeUtil.java:127)
        at net.snowflake.client.jdbc.SnowflakeUtil.checkErrorAndThrowException(SnowflakeUtil.java:67)
        at net.snowflake.client.core.StmtUtil.pollForOutput(StmtUtil.java:442)
        at net.snowflake.client.core.StmtUtil.execute(StmtUtil.java:345)
        at net.snowflake.client.core.SFStatement.executeHelper(SFStatement.java:487)
        at net.snowflake.client.core.SFStatement.executeQueryInternal(SFStatement.java:198)
        at net.snowflake.client.core.SFStatement.executeQuery(SFStatement.java:135)
        at net.snowflake.client.core.SFStatement.execute(SFStatement.java:781)
        at net.snowflake.client.core.SFStatement.execute(SFStatement.java:677)
        at net.snowflake.client.jdbc.SnowflakeStatementV1.executeQueryInternal(SnowflakeStatementV1.java:238)
        at net.snowflake.client.jdbc.SnowflakePreparedStatementV1.executeQuery(SnowflakePreparedStatementV1.java:117)
        at com.snowflake.snowpark.internal.ServerConnection.$anonfun$runQueryGetResult$1(ServerConnection.scala:358)
        at com.snowflake.snowpark.internal.ServerConnection.withValidConnection(ServerConnection.scala:810)
        at com.snowflake.snowpark.internal.ServerConnection.runQueryGetResult(ServerConnection.scala:353)
        at com.snowflake.snowpark.internal.ServerConnection.runQuery(ServerConnection.scala:336)
        at com.snowflake.snowpark.Session.runQuery(Session.scala:781)
        at com.snowflake.snowpark.internal.UDXRegistrationHandler.createJavaUDF(UDXRegistrationHandler.scala:735)
        at com.snowflake.snowpark.internal.UDXRegistrationHandler.$anonfun$registerUDF$5(UDXRegistrationHandler.scala:117)
        at com.snowflake.snowpark.internal.UDXRegistrationHandler.retryAfterFixingClassPath(UDXRegistrationHandler.scala:54)
        at com.snowflake.snowpark.internal.UDXRegistrationHandler.$anonfun$registerUDF$4(UDXRegistrationHandler.scala:99)
        at com.snowflake.snowpark.internal.UDXRegistrationHandler.withUploadFailureCleanup(UDXRegistrationHandler.scala:169)
        at com.snowflake.snowpark.internal.UDXRegistrationHandler.registerUDF(UDXRegistrationHandler.scala:99)
        at com.snowflake.snowpark.UDFRegistration.register(UDFRegistration.scala:2368)
        at com.snowflake.snowpark.functions$.registerUdf(functions.scala:2998)
        at com.snowflake.snowpark.functions$.udf(functions.scala:3110)
        at us.company.snowpark.etl.HashProcessor.<init>(HashProcessor.scala:228)
        at us.company.snowpark.app.SnowparkAppDriver$.main(SnowparkAppDriver.scala:24)
        at us.company.snowpark.app.SnowparkAppDriver.main(SnowparkAppDriver.scala)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

坏尐絯 2025-01-26 09:11:10

我在我的 pom 中添加了下面提到的构建并运行“mvn clean install”。项目中的target文件夹中生成了可执行的fat jar。有关 maven jar 插件的更多信息可以在 https://maven.apache 找到。 org/plugins/maven-jar-plugin/

<build>
    <sourceDirectory>src/main/scala</sourceDirectory>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>3.2.2</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <args>
            <arg>-encoding</arg>
            <arg>${project.build.sourceEncoding}</arg>
          </args>
          <checkMultipleScalaVersions>false</checkMultipleScalaVersions>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.2.1</version>
        <executions>
          <execution>
            <id>jar-with-dependencies</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer
                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>us.company.mainClass</mainClass>
                </transformer>
              </transformers>
              <shadedArtifactAttached>true</shadedArtifactAttached>
              <shadedClassifierName>FAT</shadedClassifierName>
              <filters>
                <filter>
                  <artifact>*:*</artifact>
                  <excludes>
                    <exclude>META-INF/*.SF</exclude>
                    <exclude>META-INF/*.DSA</exclude>
                    <exclude>META-INF/*.RSA</exclude>
                  </excludes>
                </filter>
              </filters>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.7</version>
        <configuration>
          <skipTests>true</skipTests>
        </configuration>
      </plugin>
    </plugins>
  </build>

I have added below mentioned build in my pom and ran "mvn clean install". The executable fat jar is generated in the target folder in the project. More information about the maven jar plugin can be found at https://maven.apache.org/plugins/maven-jar-plugin/

<build>
    <sourceDirectory>src/main/scala</sourceDirectory>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>3.2.2</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <args>
            <arg>-encoding</arg>
            <arg>${project.build.sourceEncoding}</arg>
          </args>
          <checkMultipleScalaVersions>false</checkMultipleScalaVersions>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.2.1</version>
        <executions>
          <execution>
            <id>jar-with-dependencies</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <transformers>
                <transformer
                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                  <mainClass>us.company.mainClass</mainClass>
                </transformer>
              </transformers>
              <shadedArtifactAttached>true</shadedArtifactAttached>
              <shadedClassifierName>FAT</shadedClassifierName>
              <filters>
                <filter>
                  <artifact>*:*</artifact>
                  <excludes>
                    <exclude>META-INF/*.SF</exclude>
                    <exclude>META-INF/*.DSA</exclude>
                    <exclude>META-INF/*.RSA</exclude>
                  </excludes>
                </filter>
              </filters>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.7</version>
        <configuration>
          <skipTests>true</skipTests>
        </configuration>
      </plugin>
    </plugins>
  </build>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文