Стандартные требования к вычислительным ресурсам и ограничения

Эта страница содержит список требований и ограничений для стандартных вычислений. Если вы используете классические вычисления, Databricks рекомендует использовать стандартный режим доступа, если рабочая нагрузка не зависит от одного из ограничений, перечисленных ниже.

Это важно

Сценарии и библиотеки init имеют разную поддержку в различных режимах доступа и версиях Среды выполнения Databricks. См. Где можно установить скрипты инициализации? и библиотеки, связанные с вычислениями.

Текущие стандартные ограничения вычислений

В следующих разделах перечислены ограничения для стандартных вычислений на основе последней версии Databricks Runtime. Ограничения, применяемые к старым версиям Databricks Runtime, см. в разделе об ограничениях, зависящих от среды выполнения.

Если эти функции необходимы для рабочей нагрузки, используйте выделенные вычислительные ресурсы .

Общие стандартные ограничения вычислений

  • Databricks Runtime для ML не поддерживается. Вместо этого установите любую библиотеку машинного обучения, не входящую в состав среды выполнения Databricks, как библиотеку с областью применения для вычислений.
  • Вычислительные ресурсы с поддержкой GPU не поддерживаются.
  • Задачи, связанные с выполнением spark-submit, не поддерживаются. Вместо этого используйте задачу JAR .
  • DBUtils и другие клиенты могут считывать только из облачного хранилища через внешнее местоположение.
  • Пользовательские контейнеры не поддерживаются.
  • Корневая директория и точки монтирования DBFS не поддерживают FUSE.

Ограничения языка

  • R не поддерживается.

Ограничения API Spark

  • Контекст Spark (sc), spark.sparkContextи sqlContext не поддерживаются для Scala:
    • Azure Databricks рекомендует использовать spark переменную для взаимодействия с экземпляром SparkSession .
    • Следующие sc функции также не поддерживаются: emptyRDD, range, init_batched_serializer, parallelize, pickleFile, textFile, wholeTextFiles, binaryFiles, binaryRecords, sequenceFile, newAPIHadoopFile, newAPIHadoopRDD, hadoopFile, hadoopRDD, union, runJob, setSystemProperty, uiWebUrl, stop, setJobGroup, setLocalProperty, getConf.
  • Свойство конфигурации Spark spark.executor.extraJavaOptions не поддерживается.
  • При создании кадра данных из локальных данных с помощью spark.createDataFrame размер строк не может превышать 128 МБ.
  • API RDD не поддерживаются.
  • Spark Connect, который используется в более поздних версиях Databricks Runtime, откладывает анализ и разрешение имен во время выполнения, что может изменить поведение кода. См . статью "Сравнение Spark Connect с классической версией Spark".

Ограничения UDF

Ограничения потоковой передачи

Замечание

Некоторые из перечисленных вариантов Kafka имеют ограниченную поддержку при использовании для поддерживаемых конфигураций в Azure Databricks. Все перечисленные ограничения Kafka допустимы как для пакетной обработки, так и для потоковой обработки. См. статью "Подключение к Apache Kafka".

  • Работа с сокетными источниками не поддерживается.
  • sourceArchiveDir должно находиться в том же внешнем расположении, что и источник, если вы используете option("cleanSource", "archive") с источником данных, управляемым каталогом Unity.
  • Для источников и приемников Kafka следующие параметры не поддерживаются.
    • kafka.sasl.client.callback.handler.class
    • kafka.sasl.login.callback.handler.class
    • kafka.sasl.login.class
    • kafka.partition.assignment.strategy
  • Python foreachBatch не поддерживает ThreadPoolExecutor или многопоточное выполнение. Многопоточное выполнение может не вызывать ошибки, но может привести к повреждению данных или несогласованным результатам.

Ограничения сетевой и файловой системы

  • Стандартные вычислительные команды выполняются от имени пользователя с низким уровнем привилегий, которому запрещен доступ к конфиденциальным частям файловой системы.
  • Пути в стиле POSIX (/) для DBFS не поддерживаются.
  • Только администраторы рабочей области и пользователи с разрешениями ANY FILE могут напрямую взаимодействовать с файлами с помощью DBFS.
  • Невозможно подключиться к сервису метаданных экземпляра или Azure WireServer.

Ограничения ядра Scala

Следующие ограничения применяются при использовании ядра scala в стандартном вычислении:

  • Некоторые классы нельзя использовать в коде, если они конфликтуют с внутренней библиотекой ядра миндаля, в частности, Input. Для списка определенных импортов для миндаля, см. раздел импорт миндаля.
  • Ведение журнала непосредственно в log4j не поддерживается.
  • В пользовательском интерфейсе выпадающее меню схемы датафрейма не поддерживается.
  • Если драйвер столкнётся с OOM, Scala REPL не завершит работу.
  • //connector/sql-aws-connectors:sql-aws-connectors не находится в целевом объекте Scala REPL, используйте результаты ClassNotFoundException.
  • Ядро Scala несовместимо с SQLImplicits.

Ограничения, зависящие от среды выполнения

Следующие ограничения были устранены с помощью обновлений среды выполнения, но могут по-прежнему применяться к рабочей нагрузке, если вы используете старую среду выполнения.

Поддержка языков

Функция Требуемая версия среды выполнения Databricks
Scala 13.3 или выше
Все библиотеки Java и Scala, поставляемые вместе со средой выполнения, доступны по умолчанию 15.4 LTS или более поздней версии (для 15.3 или более ранней версии, установите spark.databricks.scala.kernel.fullClasspath.enabled=true)

Поддержка API Spark

Функция Требуемая версия среды выполнения Databricks
Машинное обучение Spark 17.0 или выше
Python: SparkContext (sc), spark.sparkContextsqlContext 14.0 или выше
Scala Dataset ops: map, mapPartitions, foreachPartition, flatMap, reduce, filter 15.4 LTS или более поздней версии

Поддержка UDF

Функция Требуемая версия среды выполнения Databricks
applyInPandas, mapInPandas 14.3 LTS или более поздней версии
Scala scalar UDFs и Scala UDAFs 14.3 LTS или более поздней версии
Импорт модулей из каталогов в Git, файлов рабочей области или томов в PySpark UDF 14.3 LTS или более поздней версии
Используйте пользовательские версии grpc, pyarrow или protobuf в UDF PySpark через библиотеки, ограниченные записными книжками или вычислениями. 14.3 LTS или более поздней версии
Не скалярные пользовательские файлы Python и Pandas, включая UDAFs, UDTFs и Pandas в Spark 14.3 LTS или более поздней версии
Скалярные UDF на языке Python и Pandas UDF 13.3 LTS или более поздней версии

Поддержка потоковой передачи

Функция Требуемая версия среды выполнения Databricks
transformWithStateInPandas 16.3 или выше
applyInPandasWithState 14.3 LTS или более поздней версии
Scala foreach 16.1 или выше
Scala foreachBatch и flatMapGroupsWithState 16.2 или выше
Scala from_avro 14.2 или более поздней версии
Параметры Kafka kafka.ssl.truststore.location и kafka.ssl.keystore.location (указанное местоположение должно быть внешним и управляться каталогом Unity) 13.3 LTS или более поздней версии
Scala StreamingQueryListener 16.1 или выше
Взаимодействие Python StreamingQueryListener с управляемыми каталогом Unity объектами 14.3 LTS или более поздней версии

Кроме того, foreachBatch для Python изменяется следующее поведение в Databricks Runtime 14.0 и более поздних версий:

  • print() команды записывают выходные данные в журналы драйверов.
  • Невозможно получить доступ к подмодулу dbutils.widgets внутри функции.
  • Все файлы, модули или объекты, на которые ссылается функция, должны быть сериализуемыми и доступными в Spark.

Поддержка сетевой и файловой системы

Функция Требуемая версия среды выполнения Databricks
Подключения к портам, отличным от 80 и 443 12.2 LTS или более поздней версии