信息 | 描述 |
函数分类 | 按照函数性质将其创建在预设的函数分类下,函数分类包括:分析函数、加密函数、聚合函数、逻辑函数、日期与时间函数、数学函数、转换函数、字符串函数、IP 与域名函数、窗口函数、其他函数。 |
类名 | 输入函数的类名。 |
函数文件 | 选择函数来源文件的地址: 选择资源文件:从资源管理功能上传的 jar 或 zip 资源中选择函数文件。 指定 COS 路径:从平台 COS 桶路径中获取函数文件。 |
资源文件 | 函数文件选项为选择资源文件,需要在资源管理目录中选定所需的函数文件。 |
COS 路径 | 函数文件选项为指定 COS 路径,需要输入平台 COS 桶内函数文件所在路径。 |
命令格式 | 格式为:函数名(入参)。如:sum 函数命令格式为 sum(col) |
使用说明 | 自定义函数的使用说明。如:sum函数使用说明为:计算汇总值。 |
参数说明 | 自定义函数的参数说明。如:sum函数参数说明为:col:必填。列值可以为 DOUBLE、DECIMAL 或 BIGINT 类型。如果输入为 STRING 类型,会隐式转换为 DOUBLE 类型后参与运算。 |
返回值 | 自定义函数的返回值说明。如:sum 函数返回值为:返回 DOUBLE 类型。 |
示例 | 自定义函数的示例说明。如:sum 函数示例为:计算所有商品销售(sales)总额,命令示例为:select sum(sales) from table。 |
mvn archetype:generate -DgroupId=com.example -DartifactId=demo-hive -Dveriosn=1.0-SNAPSHOT -Dpackage=com.example
<dependencies><dependency><groupId>org.apache.hive</groupId><artifactId>hive-exec</artifactId><version>2.3.8</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies>
public class UppercaseUDF extends UDF {public String evaluate(String input) {return input.toUpperCase();}}
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin><!--(start) for package jar with dependencies --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.0.0</version><configuration><archive><!--指定main方法所在的类--><manifest><mainClass>com.example.UppercaseUDF</mainClass></manifest></archive><!--不能改jar-with-dependencies--><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><appendAssemblyId>false</appendAssemblyId></configuration><executions><execution><id>make-assembly</id> <!-- this is used for inheritance merges --><phase>package</phase> <!-- bind to the packaging phase --><goals><goal>single</goal></goals></execution></executions></plugin><!--(end) for package jar with dependencies --></plugins></build><repositories><repository><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></repository></repositories>
mvn package -Dmaven.test.skip=true
信息 | 内容 |
函数分类 | 其他函数 |
类名 | com.example.UppercaseUDF |
函数文件 | 选择资源文件 |
资源文件 | demo-hive-1.0-SNAPSHOT.jar |
命令格式 | UppercaseUDF(col) |
使用说明 | 输入字符串转换成大写格式 |
参数说明 | 输入字符串类型参数 |
返回值 | 输出字符串大写形式 |
public class MyDiff extends UDF {public ArrayList<Integer> evaluate(ArrayList<Integer> input) {ArrayList<Integer> result = new ArrayList<Integer>();result.add(0, 0);for (int i = 1; i < input.size(); i++) {result.add(i, input.get(i) - input.get(i - 1));}return result;}}
<dependencies><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.16</version><scope>test</scope></dependency><dependency><groupId>org.apache.hive</groupId><artifactId>hive-exec</artifactId><version>1.2.1</version></dependency></dependencies>
本页内容是否解决了您的问题?