2014-01-13 5 views
1

일부 하이브 UDF를 만들었습니다. 이제 우리는 테이블 생성을 위해 하이브리드 내부에서 이러한 UDF를 사용하려고 생각하고 있습니다. 동화 XYZ { 필드 1 ...하이브 UDF 이해

fieldn } 같은 을 { 가 udf1() udf2() 을 선택 작성

... ABC에서

UDFN() , def)

이제 우리는 올바른 방법인지 확신 할 수 없습니다. 내 이해에 따라 각 행에 대해 UDF를 호출하고 내 데이터가 수백만 개에 해당하므로 클러스터의 모든 리소스를 사용할 수 있습니다.

내 이해가 정확합니까? 또는 성능에 문제가 없으며 위의 ql을 설명한대로 사용할 수 있습니다.

감사합니다.

답변

0

우리는 프로덕션에서 여러 UDF를 사용하며 클러스터에서 초당 100 줄의 K를 처리 할 수 ​​있습니다. UDF는 의미 상 하이브의 일부가됩니다. 하이브가있는 것처럼 자바이고 하이브가 포함 된 UDF는 동일한 방식으로 처리됩니다. UDF의 경우 regexp_extract() 또는 UDAF의 경우 합계.

성능이 좋았습니다. 일반적으로 속도 저하는 (a) hdfs에서 데이터를로드하거나 (b) UDF 내에서 불완전하게 조정 된 Java 코드 중 하나입니다.