Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: отмечено как "Да" Databricks Runtime
Apache Spark SQL в Azure Databricks разработан для совместимости с Apache Hive, включая подключение к метахранилищу, операции сериализации и десериализации, а также пользовательские функции.
SerDes и определяемые пользователем функции (UDF)
Сериализация-десериализация и определяемые пользователем функции основаны на Hive 1.2.1.
Возможность подключения хранилища метаданных
См. раздел Внешний хранилище метаданных Apache Hive (устаревший) для получения информации о подключении Azure Databricks к внешнему хранилищу метаданных Hive.
Поддерживаемые функции Hive
Spark SQL поддерживает большинство функций Hive, таких как:
- Запросы Hive, включая:
- SELECT
- GROUP BY
- ORDER BY
- CLUSTER BY
- SORT BY
- Все выражения Hive, в том числе:
- Реляционные выражения (
=
,⇔
,==
,<>
,<
,>
,>=
,<=
и т. д.) - Арифметические выражения (
+
,-
,*
,/
,%
и т. д.) - Логические выражения (AND, &>ИЛИ, ||и т. д.)
- Конструкторы сложных типов
- Математические выражения (sign, ln, cos и т. д.)
- Строковые выражения (instr, length, printf и т. д.)
- Реляционные выражения (
- Пользовательские функции (UDF)
- Агрегатные функции, определяемые пользователем
- Определяемые пользователем форматы сериализации (SerDes)
- Функции окна
- Присоединения
- JOIN
- {ЛЕВОЕ|ПРАВОЕ|ПОЛНОЕ} ВНЕШНЕЕ JOIN
- ЛЕВАЯ ПОЛУ JOIN
- КРЕСТ JOIN
- Объединения
- Вложенные запросы
- SELECT col FROM (SELECT a + b AS col из t1) t2
- Образец
- Объяснить
- Секционированные таблицы, включая динамическую вставку секций
- Просмотр
- Подавляющее большинство инструкций DDL, в том числе:
- CREATE TABLE
- CREATE TABLE AS SELECT
- ALTER TABLE
- Большинство типов данных Hive, в том числе:
- TINYINT
- SMALLINT
- INT
- BIGINT
- BOOLEAN
- поплавок
- ДВОЙНОЙ
- STRING
- БИНАРНЫЙ
- TIMESTAMP
- Дата
- ARRAY<>
- КАРТА<>
- STRUCT<>
Неподдерживаемые функции Hive
В следующих разделах содержится список функций Hive, которые не поддерживаются SQL Spark. Большинство этих функций редко используются в развертываниях Hive.
Основные функции Hive
- Запись в сегментированную таблицу, созданную Hive
- Обновления ACID с высокой степенью детализации
Функции, используемые только в Hive
- Объединённый тип
- Уникальное соединение
- Сбор статистических данных столбцов: в настоящий момент Spark SQL не использует совместные сканирования для сбора статистики столбцов и поддерживает заполнение поля sizeInBytes в хранилище метаданных Hive.
Форматы входных и выходных данных Hive
- Формат файла для CLI. Для передаваемых в CLI результатов Spark SQL поддерживает только TextOutputFormat.
- Архив Hadoop
Оптимизация Hive
Несколько способов оптимизации Hive не поддерживаются в Spark. Некоторые из них (например, индексы) не так важны из-за того, что в Spark SQL вычислительная модель находится в памяти.
- Индексы растрового изображения на уровне блока и виртуальные столбцы (используемые для сборки индексов).
- Автоматическое определение числа модулей сжатия для операторов join и groupby. В Spark SQL необходимо управлять степенью параллелизма после перемешивания с помощью
SET spark.sql.shuffle.partitions=[num_tasks];
. - Флаг перекоса данных: Spark SQL не поддерживает флаг перекоса данных, как это делает Hive.
-
STREAMTABLE
подсказка в соединении: Spark SQL не следует подсказкеSTREAMTABLE
. - Слияние нескольких маленьких файлов в результатах запроса. Если в Hive выходные данные запроса содержат несколько маленьких файлов, при необходимости их можно объединить в меньшее число больших файлов, чтобы избежать перегрузки метаданных HDFS. В Spark SQL такая возможность не поддерживается.