Compatibilidad con Apache Hive
Se aplica a: Databricks Runtime
Apache Spark SQL en Azure Databricks está diseñado para ser compatible con Apache Hive. Esta compatibilidad incluye la conectividad del metastore, SerDes y UDF.
SerDes y UDF
Los SERD y las UDF de Hive se basan en Hive 1.2.1.
Conectividad del metastore
Para obtener información sobre cómo conectar Azure Databricks a un metastore de Hive hospedado externamente, consulte Metastore externo de Apache Hive (heredado).
Características admitidas de Hive
Spark SQL admite la gran mayoría de las características de Hive, como:
- Instrucciones para las consultas en Hive, incluidas:
- SELECT
- GROUP BY
- ORDER BY
- CLUSTER BY
- SORT BY
- Todas las expresiones de Hive, incluidas:
- Expresiones relacionales (
=
,⇔
,==
,<>
,<
,>
,>=
,<=
, etc.) - Expresiones aritméticas (
+
,-
,*
,/
,%
, etc.) - Expresiones lógicas (AND, &&, OR, ||, etc.)
- Constructores de tipo complejo
- Expresiones matemáticas (sign, ln, cos, etc.)
- Expresiones de cadena (instr, length, printf, etc.)
- Expresiones relacionales (
- Funciones definidas por el usuario (UDF)
- Funciones de agregación definidas por el usuario (UDAF)
- Formatos de serialización definidos por el usuario (SerDes)
- Funciones de ventana
- Combinaciones
- JOIN
- {LEFT|RIGHT|FULL} OUTER JOIN
- LEFT SEMI JOIN
- CROSS JOIN
- Uniones
- Subconsultas
- SELECT col FROM ( SELECT a + b AS col from t1) t2
- muestreo
- Explicación
- Tablas con particiones, incluida la inserción dinámica de particiones
- Ver
- Gran mayoría de las instrucciones DDL, incluidas:
- CREATE TABLE
- CREATE TABLE AS SELECT
- ALTER TABLE
- La mayoría de los tipos de datos de Hive, incluidos:
- TINYINT
- SMALLINT
- INT
- bigint
- BOOLEAN
- FLOAT
- DOUBLE
- STRING
- BINARY
- timestamp
- DATE
- ARRAY<>
- MAP<>
- STRUCT<>
Funcionalidad de Hive no admitida
Las siguientes secciones contienen una lista de características de Hive que Spark SQL no admite. La mayoría de ellas casi nunca se usan en implementaciones de Hive.
Características principales de Hive
- Escritura en una tabla con cubos creada por Hive
- Actualizaciones detalladas de ACID
Características esotéricas de Hive
- Tipo de unión
- Combinación única
- Recopilación de estadísticas de columnas: por el momento Spark SQL no realiza exámenes mediante el modelo para recopilar estadísticas de las columnas, solo admite rellenar el campo sizeInBytes del metastore de Hive.
Formatos de entrada y salida de Hive
- Formato de archivo para la CLI: para ver los resultados que se muestran cuando se vuelve a la CLI, Spark SQL solo admite TextOutputFormat
- Archivo de Hadoop
Optimizaciones de Hive
Algunas optimizaciones de Hive no se incluyen en Spark. Algunos de ellos (como los índices) son menos importantes debido al modelo computacional en memoria de Spark SQL.
- Índices de mapa de bits de nivel de bloque y columnas virtuales (se usan para generar índices).
- Determinación de forma automática del número de reductores para combinaciones y agrupaciones: en Spark SQL, debe controlar el grado de paralelismo posterior al orden aleatorio mediante
SET spark.sql.shuffle.partitions=[num_tasks];
. - Marca de datos de sesgo: Spark SQL no sigue la marca de datos de sesgo en Hive.
- Sugerencia de
STREAMTABLE
en la combinación: Spark SQL no sigue la sugerencia deSTREAMTABLE
. - Combinación de varios archivos pequeños en los resultados de la consulta: si la salida del resultado contiene varios archivos pequeños, Hive puede combinarlos opcionalmente en menos archivos grandes, con el fin de evitar desbordar los metadatos de HDFS. Spark SQL no lo admite.