티스토리 뷰
hive udf에서 java.lang.illegalargumentexception argument type mismatch
오류가 발생하는 경우는 파라미터로 전달하는 타입이 설정과 달라서 발생합니다.
아래와 같은 경우 evaluate UDF의 입력값으로 String 이 전달되어야 하는데 다른 타입이 전달되면 오류가 발생합니다. 일반적인 경우에는 타입이 다르다는 것을 알 수 있지만 함수의 중첩으로 처리하는 경우에는 이 오류를 정확하게 확인하기가 어렵습니다.
public class SampleUDF extends UDF {
public Text evaluate(String text) {
// 입력받은 문자를 대문자로 반환
return new Text(text.toUpperCase());
}
}
함수의 중첩
아래의 경우 funcB의 결과가 funcA의 입력으로 전달되는데 이때 funcB의 결과를 Text타입으로 반환할 때 funcA의 입력을 String으로 선언하면 오류가 발생하게 됩니다. 따라서 함수의 중첩을 이용할 때는 결괏값을 정확하게 선언해야 합니다.
SELECT funcA(funcB('A'));
반응형
'빅데이터 > hive' 카테고리의 다른 글
[hive] This command is not allowed on an ACID table default.table_name with a non-ACID transaction manager 오류 해결 방법 (0) | 2020.03.17 |
---|---|
[hive] 구체화 뷰(Materialized View) (0) | 2020.01.21 |
[hive] 벡터화(vectorized) 처리 (0) | 2020.01.07 |
[hive] 하이브의 조인방식(hive join) (0) | 2020.01.06 |
[hive] Blobstore 기능으로 처리 속도 증가 (0) | 2019.12.19 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 알고리즘
- Python
- AWS
- mysql
- 다이나믹
- Tez
- 백준
- SPARK
- 하둡
- S3
- yarn
- Hadoop
- build
- emr
- java
- HDFS
- airflow
- hbase
- HIVE
- bash
- error
- 오류
- 하이브
- Linux
- SQL
- nodejs
- 파이썬
- 정올
- ubuntu
- oozie
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함