테이블을 참조하지 않고 하이브 기능을 어떻게 테스트 할 수 있습니까?
문제
UDF WeekoFyear를 이해하고 싶었고 첫 번째 주를 어떻게 시작 하는지를 원했습니다.나는 테이블과 달리기를 가라 앉아야했다 쿼리.나는 테이블을 누르지 않고 값을 계산하고 싶었다.둘째, UDF 소스 코드를 볼 수 있습니까?
SELECT weekofyear
('12-31-2013')
from a;
. 해결책
하이브 0.13.0 이후 UDF를 테스트 할 테이블이 필요하지 않습니다.
이 jira : hive-178 from을 선택하지 않아도 한 행 테이블을 가정해야합니다열 없음
테스트 :
hive> SELECT weekofyear('12-31-2013');
.
결과 :
OK
1
Time taken: 0.912 seconds, Fetched: 1 row(s)
.
소스 코드 (마스터 브랜치)는 여기에 있습니다 : udfweekofyear.java
다른 팁
Java Developer 인 경우 JUnit 테스트 케이스를 작성하고 UDF를 테스트 할 수 있습니다.
grepcode 의 함수가 내장 된 모든 하이브의 소스 코드를 검색 할 수 있습니다.
나는 하이브에서 테이블을 타격하지 않고 UDF를 실행할 것이라고 생각하지 않는다. 하이브 개발자조차도 테이블 UDF 테스트에서.
- 하나의 행만으로 테이블을 생성 하고이 테이블에서 UDF 쿼리를 실행합니다
- 로컬 모드에서 하이브를 실행하십시오.
하이브 소스 코드는 여기 입니다.
UDFWeekOfYear
소스는 여기 .
적어도 하나의 행을 사용하여 테스트 함수를 테스트 할 수 있어야합니다. 다음은 작업을 수행하고 문자열 결과를 출력하는 몇 가지 사용자 정의 함수를 사용하는 예입니다.
테이블을 실제 테이블로 대체하십시오.
ST_ASTEXT (ST_INTERSECTION (ST_INTERSECTIECTION (ST_INTERSECTIECTIECTION (2,0, 2,3, 3,0), ST_Polygon (1,1,4,1,4,4, 1,4)))에서 anytable 한도 1;
Hive Resuluts :
확인
다각형 ((2 1, 2.66666666666666666666665 1, 2 3, 2 1))
시간 촬영 : 0.191 초, 페치 : 1 행 (s)
하이브>