美文网首页
数据仓库-Hive基础(八) UDF开发实例

数据仓库-Hive基础(八) UDF开发实例

作者: 做个合格的大厂程序员 | 来源:发表于2020-06-23 17:54 被阅读0次

    简单UDF示例

    第一步:创建maven java 工程,导入jar包

    <repositories>
        <repository>
            <id>cloudera</id>
     <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.6.0-cdh5.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-exec</artifactId>
            <version>1.1.0-cdh5.14.0</version>
        </dependency>
    </dependencies>
    <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-shade-plugin</artifactId>
             <version>2.2</version>
             <executions>
                 <execution>
                     <phase>package</phase>
                     <goals>
                         <goal>shade</goal>
                     </goals>
                     <configuration>
                         <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>
    </plugins>
    </build>
    

    第二步:开发java类继承UDF,并重载evaluate 方法

    public class ItcastUDF extends UDF {
        public Text evaluate(final Text s) {
            if (null == s) {
                return null;
            }
            //返回大写字母
            return new Text(s.toString().toUpperCase());
    
        }
    }
    

    第三步:将我们的项目打包,并上传到hive的lib目录下

    image

    第四步:添加jar包

    重命名我们的jar包名称

    cd /export/servers/hive-1.1.0-cdh5.14.0/lib
    mv original-day_06_hive_udf-1.0-SNAPSHOT.jar udf.jar
    

    hive的客户端添加我们的jar包

    add jar /export/servers/hive-1.1.0-cdh5.14.0/lib/udf.jar;
    

    第五步:设置函数与我们的自定义函数关联

    create temporary function tolowercase as 'cn.itcast.udf.ItcastUDF';
    

    第六步:使用自定义函数

    select tolowercase('abc');
    

    相关文章

      网友评论

          本文标题:数据仓库-Hive基础(八) UDF开发实例

          本文链接:https://www.haomeiwen.com/subject/wgghfktx.html