Apache Hive-kompatibilitás
A következőkre vonatkozik: Databricks Runtime
Az Apache Spark SQL az Azure Databricksben úgy lett kialakítva, hogy kompatibilis legyen az Apache Hive-vel, beleértve a metaadattár-kapcsolatot, a SerDes-t és az UDF-eket.
SerDes és UDFs
A Hive SerDes és az UDF-ek a Hive 1.2.1-en alapulnak.
Metaadattár-kapcsolat
Támogatott Hive-funkciók
A Spark SQL a Hive-funkciók túlnyomó többségét támogatja, például:
- Hive-lekérdezési utasítások, beleértve a következőket:
- SELECT
- GROUP BY
- ORDER BY
- FÜRT A KÖVETKEZŐ SZERINT:
- RENDEZÉSI SZEMPONT
- Minden Hive-kifejezés, beleértve a következőket:
- Relációs kifejezések (
=
, ,⇔
==
,<>
,<
,>
>=
, ,<=
stb.) - Számtani kifejezések (
+
, ,-
,*
/
,%
stb.) - Logikai kifejezések (AND, &&; OR, ||stb.)
- Összetett típusú konstruktorok
- Matematikai kifejezések (jel, ln, cos stb.)
- Sztringkifejezések (instr, length, printf stb.)
- Relációs kifejezések (
- Felhasználó által definiált függvények (UDF)
- Felhasználó által definiált összesítő függvények (UDAF)
- Felhasználó által definiált szerializálási formátumok (SerDes)
- Ablakfunkciók
- Csatlakozik
- JOIN
- {LEFT|JOBB|FULL} KÜLSŐ ILLESZTÉS
- BAL OLDALI FÉLILLESZTÉS
- KERESZTBE ILLESZTÉS
- Szakszervezetek
- Al-lekérdezések
- SELECT col FROM (SELECT a + b AS col from t1) t2
- Mintavételezés
- Explain
- Particionált táblák, beleértve a dinamikus partíció beszúrását
- Nézet
- A DDL-utasítások túlnyomó többsége, beleértve a következőket:
- CREATE TABLE
- CREATE TABLE AS SELECT
- ALTER TABLE
- A Legtöbb Hive-adattípus, beleértve a következőket:
- TINYINT
- SMALLINT
- INT
- BIGINT
- LOGIKAI
- LEBEG
- DUPLA
- HÚR
- BINÁRIS
- TIMESTAMP
- DÁTUM
- TÖMB<>
- TÉRKÉP<>
- STRUCT<>
Nem támogatott Hive-funkciók
Az alábbi szakaszok olyan Hive-funkciókat tartalmaznak, amelyeket a Spark SQL nem támogat. A legtöbb ilyen funkciót ritkán használják a Hive üzemelő példányaiban.
Fő Hive-funkciók
- Írás a Hive által létrehozott gyűjtő táblába
- ACID részletes frissítések
Ezoterikus Hive-funkciók
- Unió típusa
- Egyedi illesztés
- Oszlopstatisztikák gyűjtése: A Spark SQL jelenleg nem végez visszavizsgálatokat az oszlopstatisztikák gyűjtéséhez, és csak a Hive metaadattár SizeInBytes mezőjének feltöltését támogatja
Hive bemeneti és kimeneti formátumok
- Fájlformátum a parancssori felülethez: A parancssori felületre vissza mutató eredmények esetében a Spark SQL csak a TextOutputFormatot támogatja
- Hadoop archívum
Hive-optimalizálás
Néhány Hive-optimalizálás nem szerepel a Sparkban. Ezek némelyike (például indexek) kevésbé fontosak a Spark SQL memóriabeli számítási modellje miatt.
- Blokkszintű bitképindexek és virtuális oszlopok (indexek létrehozásához használatos).
- Automatikusan határozza meg az illesztések és csoportcsoportok redukálóinak számát: A Spark SQL-ben szabályoznia kell a párhuzamosság fokát a párhuzamosság után
SET spark.sql.shuffle.partitions=[num_tasks];
. - Ferde adatjelző: A Spark SQL nem követi a Hive-ben a ferde adatjelzőt.
STREAMTABLE
tipp illesztéskor: A Spark SQL nem követi aSTREAMTABLE
tippet.- Több kis fájl egyesítése lekérdezési eredményekhez: ha az eredménykimenet több kis fájlt tartalmaz, a Hive igény szerint összevonhatja a kis fájlokat kevesebb nagy fájlba, hogy elkerülje a HDFS-metaadatok túlcsordulását. A Spark SQL ezt nem támogatja.