Compatibilidade com o Apache Hive

Aplica-se a:check marked yes Databricks Runtime

O Apache Spark SQL no Azure Databricks foi projetado para ser compatível com o Apache Hive, incluindo conectividade de metastore, SerDes e UDFs.

SerDes e UDFs

Hive SerDes e UDFs são baseados no Hive 1.2.1.

Conectividade Metastore

Consulte Metastore externo do Apache Hive (legado) para obter informações sobre como conectar o Azure Databricks a um metastore do Hive hospedado externamente.

Recursos do Hive suportados

O Spark SQL suporta a grande maioria dos recursos do Hive, como:

  • Instruções de consulta do Hive, incluindo:
    • SELECIONAR
    • GROUP BY
    • ORDER BY
    • CLUSTER POR
    • ORDENAR POR
  • Todas as expressões do Hive, incluindo:
    • Expressões relacionais (=, , , , , , <>=>, , <>==<=etc)
    • Expressões aritméticas (+, , -, , , %*/etc)
    • Expressões lógicas (E, &&, OR, ||, etc)
    • Construtores de tipo complexo
    • Expressões matemáticas (signo, ln, cos, etc)
    • Expressões de cadeia de caracteres (instr, length, printf, etc)
  • Funções definidas pelo usuário (UDF)
  • Funções de agregação definidas pelo usuário (UDAF)
  • Formatos de serialização definidos pelo usuário (SerDes)
  • Funções do Windows
  • Adere
    • JOIN
    • {ESQUERDA|DIREITA|JUNÇÃO EXTERNA COMPLETA}
    • SEMI JUNTA ESQUERDA
    • JUNÇÃO CRUZADA
  • Sindicatos
  • Subconsultas
    • SELECT col FROM ( SELECT a + b AS col from t1) t2
  • Amostragem
  • Explicar
  • Tabelas particionadas, incluindo inserção dinâmica de partições
  • Ver
  • Grande maioria das declarações DDL, incluindo:
    • CREATE TABLE
    • CREATE TABLE AS SELECT
    • ALTER TABLE
  • A maioria dos tipos de dados do Hive, incluindo:
    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • BOOLEANO
    • FLUTUAR
    • DUPLO
    • STRING
    • BINÁRIO
    • CARIMBO DE DATA/HORA
    • DATE
    • MATRIZ<>
    • MAPA<>
    • ESTRUTURA<>

Funcionalidade do Hive não suportada

As seções a seguir contêm uma lista de recursos do Hive que o Spark SQL não suporta. A maioria desses recursos raramente é usada em implantações do Hive.

Principais recursos do Hive

  • Gravando na tabela com bucket criada pelo Hive
  • Atualizações de grão fino ACID

Características da Colmeia Esotérica

  • Tipo de União
  • Adesão única
  • Coleta de estatísticas de coluna: o Spark SQL não faz varreduras de piggyback para coletar estatísticas de coluna no momento e suporta apenas o preenchimento do campo sizeInBytes do metastore do Hive

Formatos de entrada e saída do Hive

  • Formato de arquivo para CLI: Para resultados mostrando de volta para a CLI, o Spark SQL suporta apenas TextOutputFormat
  • Arquivo do Hadoop

Otimizações do Hive

Algumas otimizações do Hive não estão incluídas no Spark. Alguns deles (como índices) são menos importantes devido ao modelo computacional na memória do Spark SQL.

  • Índices de bitmap de nível de bloco e colunas virtuais (usados para criar índices).
  • Determine automaticamente o número de redutores para junções e groupbys: no Spark SQL, você precisa controlar o grau de paralelismo pós-embaralhamento usando SET spark.sql.shuffle.partitions=[num_tasks];o .
  • Sinalizador de dados de inclinação: o Spark SQL não segue o sinalizador de dados de distorção no Hive.
  • STREAMTABLE dica na associação: o Spark SQL não segue a STREAMTABLE dica.
  • Mesclar vários arquivos pequenos para resultados de consulta: se a saída do resultado contiver vários arquivos pequenos, o Hive pode, opcionalmente, mesclar os arquivos pequenos em menos arquivos grandes para evitar o transbordamento dos metadados do HDFS. O Spark SQL não suporta isso.