본문 바로가기
BigData/Hive

[Hive,Spark] Hive와 SparkSQL의 호환성

by 스파이디웹 2021. 11. 30.
728x90

Hive와의 호환성

  • spark SQL은 Hive Metastore, SerDes(Serialization Deserialization), UDFs(UserDefineFunctions)와 호환성을 염두하여 디자인 됨

1-1. 지원되는 하이브 특징

  • Hive 쿼리문
    • SELECT
    • GROUP BY
    • ORDER BY
    • DISTRIBUTE BY
    • CLUSTER BY
    • SORT BY
  • Hive 연산자
    • 관계 연산자(=, <=>, ==, <>, <, >, >=, <=, 등등)
    • 수학 연산자 (+, -, *, /, %, 등등)
    • 논리 연산자(AND, &&, OR, ||, 등등)
    • 복합 연산자
    • 수학적 함수(sign, ln, cos, 등등)
    • 문자열 함수(instr, length, printf, 등등)
  • UDF(사용자 지정 함수)
  • UDAF(사용자 지정 aggregation 함수)
  • SerDes(사용자 지정 직렬화 포맷)
  • Window 함수
  • Joins
    • Join
    • {LEFT|RIGHT|FULL} OUTER JOIN
    • LEFT SEMI JOIN
    • LEFT ANTI JOIN
    • CROSS JOIN
  • UNIONs
  • Sub-queries
    • FROM절의 서브쿼리
    • WHERE절의 서브쿼리(IN, NOT IN, EXISTS, NOT EXISTS 사용 가능)
  • Sampling
  • Explain
  • 동적 파티셔닝을 포함한 파티션된 테이블들
  • View
  • Hive DDL
    • CREATE TABLE
    • CREATE TABLE AS SELECT
    • CREATE TABLE LIKE
    • ALTER TABLE
  • 대부분의 하이브 데이터 타입들
    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • BOOLEAN
    • FLOAT
    • DOUBLE
    • STRING
    • BINARY
    • TIMESTAMP
    • DATE
    • ARRAY<>
    • MAP<>
    • STRUCT<>

1-2. 지원되지 않는 하이브 특징

  • bucket
  • UNION type
  • Unique join
  • File format for CLI(스파크는 TextOutputFormat만 지원)
  • 하둡 아카이브
  • Hive optimazations
  • Hive UDF/UDTF/UDAF 전부 다가 지원되는 것은 아니다
    • getRequiredJars, getRequiredFiles
    • initialize(StructObjectInspector) in GenericUDTF
    • configure(GenericUDF, GenericUDTF, GenericUDFEvaluator)
    • close(GenericUDF, GenericUDAFEvaluator)
    • reset(GenericUDFEvaluator)
    • getWindowingEvaluator(GenericUDAFEvaluator)
  • 호환되지 않는 Hive UDF
    • SQRT(n) if n< 0, Hive는 null SparkSQL은 NaN return
    • ACOS(n) If n < -1 or n > 1, Hive 는 null, Spark SQL NaN return
    • ASIN(n) n < -1 or n > 1, Hive 는 null, Spark SQL NaN return
    • CAST(n AS TIMESTAMP)  n이 정수면 Hive는 n 을 밀리초로 취급, Spark SQL 은 n 을 초로 취급

 

출처:

https://spark.apache.org/docs/3.0.1/sql-migration-guide.html#compatibility-with-apache-hive

728x90

댓글