▐ 5. 上传jar包至MaxCompute资源
在自己项目ODPS空间中,MaxCompute -> 资源 -> JAR
可自定义资源名称,并点击执行文件,进行上传
这里我们选择项目中 targert->xxx.jar 文件
最后,点击左上角提交资源,再点击右上角发布资源,即可
▐ 6. 上传对应函数
在自己项目ODPS空间中,MaxCompute->函数->新建函数
取好函数名称,点击新建
先从资源列表中,选择我们刚发布的资源,再点击提交➕发布
至此,UDF上传已经成功,我们就可以在自己的SQL中直接输入函数名称进行调用啦
▐ 7. 注意maven依赖问题
当我们UDF需要依赖其他jar包时,比如fastJSON,需要把其他依赖包一起打包进来,否则上传至ODPS时会报错:java.lang.NoClassDefFoundError
此时需要在项目的pom.xml文件中,加入一段代码,即可将所有依赖一起打包,jar-with-dependencies
<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <!-- 此处需改成自己定义的类名路径 --> <mainClass>com.alibaba.mkt.odps.complete.CheckCompleteInfo</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>