========================================
1、启动服务
start-all.sh
2、关闭安全模式
hadoop dfsadmin -safemode leave
3、
hive --service hiveserver2 &
========================================
create table tmp(
movieid int,
title string,
genres array<string>
)
row format delimited
fields terminated by ',';
load data local inpath '/root/user.csv' overwrite into table tmp;
1、解压apache-maven-3.6.1到A里
2、在文件apache-maven-3.6.1里创建localRepository,将c0cd3630-8531-11ee-88a5-53ea2a688f3a文件解压到localRepository中
3、设置\apache-maven-3.6.1\conf路径下的settings.xml文件,<localRepository>添加localRepository的路径</localRepository>
4、设置!!!File | Settings | Build, Execution, Deployment | Build Tools | Maven
5、配置Maven环境变量
5、创建名为Lower的java class
6、转小写
package com.hive; //使用Alt+enter创建目录
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.hive.ql.exec.UDF;
public class Lower extends UDF {
/**
* 如果入参是合法字符串,就转为小写返回
* @param str
* @return
*/
public String evaluate(String str) {
return StringUtils.isBlank(str) ? str : str.toLowerCase();
}
}
7、转大写
package com.hiveudf.udf; //使用Alt+enter创建目录
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.hive.ql.exec.UDF;
public class Upper extends UDF {
/**
* 如果入参是合法字符串,就转为大写返回
* @param str
* @return
*/
public String evaluate(String str) {
return StringUtils.isBlank(str) ? str : str.toUpperCase();
}
}
8、打包
执行package 打成jar包上传到服务器/root
9、jar包用法
将jar包添加到hive的classpath
1、add jar /root/MAVEB_JAVA-1.0-SNAPSHOT.jar;
2、list jars;
创建临时函数与开发好的java class关联
3、create temporary function myUpper as "com.hiveudf.udf.Upper"; //com.hiveudf包名 Upper类名
使用自定义的函数myUpper
select name, myUpper(name) from tmp;
****************************************************************************
反向操作
在idea中应用jar包 得到包名和类名