Kompatibilitet med Apache Hive

Gäller för:check marked yes Databricks Runtime

Apache Spark SQL i Azure Databricks är utformat för att vara kompatibelt med Apache Hive, inklusive metaarkivanslutning, serder och UDF:er.

Serdes och UDF:er

Hive SerDes och UDF:er baseras på Hive 1.2.1.

Anslutning till metaarkiv

Se Externt Apache Hive-metaarkiv (äldre) för information om hur du ansluter Azure Databricks till ett externt värdbaserat Hive-metaarkiv.

Hive-funktioner som stöds

Spark SQL stöder de allra flesta Hive-funktioner, till exempel:

  • Hive-frågeinstruktioner, inklusive:
    • SELECT
    • GROUP BY
    • ORDER BY
    • KLUSTER EFTER
    • SORTERA EFTER
  • Alla Hive-uttryck, inklusive:
    • Relationsuttryck (=, , ==, <>, <, >, >=, , <=osv.)
    • Aritmetiska uttryck (+, -, *, /, %osv.)
    • Logiska uttryck (AND, &&, OR, ||osv.)
    • Komplexa typkonstruktorer
    • Matematiska uttryck (tecken, ln, cos osv.)
    • Stränguttryck (instr, längd, utskrift osv.)
  • Användardefinierade funktioner (UDF)
  • Användardefinierade sammansättningsfunktioner (UDAF)
  • Användardefinierade serialiseringsformat (SerDes)
  • Fönsterfunktioner
  • Går
    • JOIN
    • {VÄNSTER|HÖGER|FULL} YTTRE KOPPLING
    • VÄNSTER HALVKOPPLING
    • KORSKOPPLING
  • Fackföreningar
  • Underfrågor
    • SELECT col FROM ( SELECT a + b AS col from t1) t2
  • Sampling
  • Förklara
  • Partitionerade tabeller inklusive dynamisk partitionsinfogning
  • Visa
  • De flesta DDL-instruktioner, inklusive:
    • CREATE TABLE
    • CREATE TABLE AS SELECT
    • ALTER TABLE
  • De flesta Hive-datatyper, inklusive:
    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • BOOLEAN
    • FLYTA
    • DOUBLE
    • STRÄNG
    • BINARY
    • TIMESTAMP
    • DATUM
    • ARRAY<>
    • KARTA<>
    • STRUCT<>

Hive-funktioner som inte stöds

Följande avsnitt innehåller en lista över Hive-funktioner som Spark SQL inte stöder. De flesta av dessa funktioner används sällan i Hive-distributioner.

Viktiga Hive-funktioner

  • Skriva till bucketad tabell som skapats av Hive
  • ACID-detaljerade uppdateringar

Esoteriska Hive-funktioner

  • Union-typ
  • Unik koppling
  • Insamling av kolumnstatistik: Spark SQL genomsöker inte piggyback för att samla in kolumnstatistik för tillfället och stöder bara att fältet sizeInBytes i Hive-metaarkivet fylls i

Hive-indata- och utdataformat

  • Filformat för CLI: För resultat som visas tillbaka till CLI stöder Spark SQL endast TextOutputFormat
  • Hadoop-arkiv

Hive-optimeringar

En handfull Hive-optimeringar ingår inte i Spark. Vissa av dessa (till exempel index) är mindre viktiga på grund av Spark SQL:s minnesintern beräkningsmodell.

  • Blocknivå bitmappsindex och virtuella kolumner (används för att skapa index).
  • Bestäm automatiskt antalet reducers för kopplingar och groupbys: I Spark SQL måste du kontrollera graden av parallellitet efter shuffle med hjälp av SET spark.sql.shuffle.partitions=[num_tasks];.
  • Skeva dataflagga: Spark SQL följer inte flaggan för skev data i Hive.
  • STREAMTABLE tips i anslutning: Spark SQL följer inte tipset STREAMTABLE .
  • Slå samman flera små filer för frågeresultat: om resultatet innehåller flera små filer kan Hive eventuellt sammanfoga de små filerna till färre stora filer för att undvika att HDFS-metadata spills över. Spark SQL stöder inte det.