hive
하이브 사용자 정의 함수 (UDF 's)
수색…
하이브 UDF 생성
UDF를 만들려면 UDF ( org.apache.hadoop.hive.ql.exec.UDF
) 클래스를 확장하고 evaluate 메소드를 구현해야한다.
UDF가 준수되고 JAR이 빌드되면 임시 / 영구 기능을 만들기 위해 하이브 컨텍스트에 JAR을 추가해야합니다.
import org.apache.hadoop.hive.ql.exec.UDF;
class UDFExample extends UDF {
public String evaluate(String input) {
return new String("Hello " + input);
}
}
hive> ADD JAR <JAR NAME>.jar;
hive> CREATE TEMPORARY FUNCTION helloworld as 'package.name.UDFExample';
hive> select helloworld(name) from test;
주어진 문자열을 다듬기위한 하이브 UDF.
package MyHiveUDFs;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public class Strip extends UDF {
private Text result = new Text();
public Text evaluate(Text str) {
if(str == null) {
return null;
}
result.set(StringUtils.strip(str.toString()));
return result;
}
}
위 파일을 jar 파일로 내 보냅니다.
Hive CLI로 이동하여 UDF JAR 추가
hive> ADD jar /home/cloudera/Hive/hive_udf_trim.jar;
JAR가 하이브 CLI 클래스 경로에 있는지 확인하십시오.
hive> list jars;
/home/cloudera/Hive/hive_udf_trim.jar
임시 함수 만들기
hive> CREATE TEMPORARY FUNCTION STRIP AS 'MyHiveUDFs.Strip';
UDF 출력
hive> select strip(' hiveUDF ') from dummy;
OK
hiveUDF
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow