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
댓글