Hive: HQL 사용 기법 과 함수

2290 단어 hive.
Hive HQL 사용법
HQL 은 SQL 과 거의 유사 하 다.
주의 점:
  • HQL 조회 에서 표현 식 으로 계 산 된 값 입 니 다. 표현 식 에 NULL 변수 가 있 으 면 전체 표현 식 은 NULL 입 니 다.예 를 들 어 sal * 12 + comm, comm 또는 sal 이 NULL 이면 표현 식 결과 도 NULL 입 니 다.함수 nvl (var, if null value) 을 사용 하여 빈 값 을 판단 하고 기본 값 을 부여 할 수 있 습 니 다.

  • Fetch Task(Since ver0.10.0):
    이 기능 은 간단 한 조회 문 구 를 MapReduce 작업 으로 전환 하지 않 고 HDFS 를 직접 조작 할 수 있다.
  • set hive.fetch.task.conversion=more;
  • hive –hiveconf hive.fetch.task.conversion=more;
  • hive - site. xml 을 수정 합 니 다.

  • HQL 정렬:
  • orderby: 를 사용 하면 열, 표현 식, 별명, 열 번 호 를 따라 갈 수 있 습 니 다.
  • 열 번 호 를 사용 하여 열 려 면: set hive. groupby. orderby. position. alias = true;
  • NULL 은 기본적으로 맨 앞 에 있 습 니 다.

  • HQL 하위 조회:
  • hive 는 from 과 where 자구 의 하위 조회 만 지원 합 니 다.
  • 하위 조회 가 되 돌아 오 는 결과 집합 에 NULL 이 포함 되 어 있 으 면 NOT IN 을 사용 할 수 없고 IN 을 사용 할 수 있 습 니 다.

  • Hive 함수:
  • 내장 함수
  • 사용자 정의 함수
  • 문자 함수:
  • lower
  • upper
  • lpad
  • rpad

  • 수집 함수:
  • size

  • 날짜 함수:
  • to_date
  • year
  • month
  • day
  • weekofyear
  • date_sub

  •  
    취 합 함수:
  • count
  • sum
  • min
  • max
  • avg

  •  
    사용자 정의 함수 (UDF: User Defined Function)
  • 사용자 정의 클래스 는 org. apache. hadop. hive. ql. UDF 에서 계 승 됩 니 다.
  • evaluate 함 수 를 실현 합 니 다.
  • 프로그램 을 목표 기계 에 포장 하 다.
  • hive 클 라 이언 트 에 들 어 갑 니 다: hive > add jar < jar path >;
  • 임시 함수 만 들 기: hive > 임시 함수 만 들 기 < funcname > as < java class name >;
  • 사용자 정의 함수 삭제: hive > drop temporary function < funcname >;

  • UDF 예: 사용자 정의 문자열 연결 함수:
    package demo.udf;
    
    import org.apache.hadoop.hive.ql.exec.UDF;
    import org.apache.hadoop.io.Text;
    
    public class ConcatString extends UDF {
        public Text evaluate(Text a, Text b) {
            return new Text(a.toString() + "****" + b.toString();
        }    
    }
  • jar 패키지 로 포장 하여 대상 기기 에 업로드
  • hive>add jar < your_jar >;
  • hive>create temporary function myconcat as ‘demo.udf.ConcatString’;
  • select myconcat(‘Hello’, ‘World’)
  • 결과: Hello * * * World
  •  

    좋은 웹페이지 즐겨찾기