Standardní požadavky a omezení výpočetních prostředků

Tato stránka obsahuje seznam požadavků a omezení pro standardní výpočetní prostředky. Pokud používáte klasické výpočetní prostředky, Databricks doporučuje používat standardní režim přístupu, pokud vaše úloha není závislá na jednom z níže uvedených omezení.

Důležité

Inicializační skripty a knihovny mají různé podpory napříč režimy přístupu a verzemi Databricks Runtime. Podívejte se na možnosti instalace inicializačních skriptů a knihovny pro výpočetní prostředky.

Aktuální standardní omezení výpočetních prostředků

Následující části obsahují omezení pro standardní výpočetní prostředky na základě nejnovější verze Databricks Runtime. Omezení, která platí pro starší verze databricks Runtime, najdete v tématu Omezení závislá na modulu runtime.

Pokud se tyto funkce vyžadují pro vaši úlohu, použijte místo toho vyhrazené výpočetní prostředky .

Obecná omezení standardních výpočetních prostředků

  • Databricks Runtime pro ML se nepodporuje. Místo toho nainstalujte jakoukoli knihovnu ML, která není součástí modulu Databricks Runtime, jako knihovnu s vymezeným výpočetním oborem.
  • Výpočetní prostředky s podporou GPU se nepodporují.
  • Odesílání úkolů Spark-submit není podporováno. Místo toho použijte úlohu JAR.
  • DBUtils a další klienti mohou číst pouze z cloudového úložiště prostřednictvím externí lokace.
  • Kořen a připojení DBFS nepodporují FUSE.

Omezení jazyka

  • R není podporován.

Omezení rozhraní Spark API

  • Kontext Sparku (sc), spark.sparkContexta sqlContext nejsou podporovány pro Scala:
    • Azure Databricks doporučuje používat proměnnou spark k interakci s SparkSession instancí.
    • sc Následující funkce se také nepodporují: emptyRDD, range, init_batched_serializer, parallelize, pickleFile, textFile, wholeTextFiles, binaryFiles, binaryRecords, sequenceFile, newAPIHadoopFile, newAPIHadoopRDD, hadoopFile, hadoopRDD, union, runJob, setSystemProperty, uiWebUrl, stop, setJobGroup, setLocalProperty, getConf.
  • Nastavení určitých vlastností konfigurace Sparku se nepodporuje. Vytvoření nebo úprava clusteru, který nastaví omezenou vlastnost, selže s chybou. Úplný seznam najdete v tématu Omezení konfigurace Sparku.
  • Při vytváření datového rámce z místních dat pomocí spark.createDataFrame, velikosti řádků nesmí překročit 128 MB.
  • Rozhraní API RDD nejsou podporovány.
  • Spark Connect, který se používá v aktuálnějších verzích Databricks Runtime, analýzu a rozpoznávání názvů posouvá na dobu vykonávání, což může změnit chování vašeho kódu. Viz Porovnání Spark Connect s Klasickým Sparkem.

UDF omezení

Omezení streamování

Poznámka:

Některé z uvedených možností Kafka mají omezenou podporu při použití pro podporované konfigurace v Azure Databricks. Všechna uvedená omezení Kafka jsou platná pro dávkové zpracování i zpracování datových proudů. Viz Připojení k Apache Kafka.

  • Práce se soketovými zdroji není podporována.
  • sourceArchiveDir musí být ve stejném externím umístění jako zdroj, pokud používáte option("cleanSource", "archive") se zdrojem dat spravovaným katalogem Unity.
  • U zdrojů a jímek Kafka se nepodporují následující možnosti:
    • kafka.sasl.client.callback.handler.class
    • kafka.sasl.login.callback.handler.class
    • kafka.sasl.login.class
    • kafka.partition.assignment.strategy
  • Python foreachBatch nepodporuje ThreadPoolExecutor ani spouštění s více vlákny. Spuštění ve více vláknech nemusí vyvolat chyby, ale může vést k poškození dat nebo nekonzistentním výsledkům.

Omezení sítě a systému souborů

  • Standardní výpočetní prostředí spouští příkazy jako uživatel s nízkými oprávněními, který má zakázaný přístup k citlivým částem systému souborů.
  • Cesty ve stylu POSIX (/) pro DBFS nejsou podporovány.
  • Soubory mohou prostřednictvím DBFS přímo spravovat pouze správci pracovního prostoru a uživatelé s oprávněním K LIBOVOLNÉMU SOUBORU.
  • Nemůžete se připojit ke službě metadat instance ani k Azure WireServeru.

Omezení proměnných prostředí

Pro modul Spark a inicializační skripty ve standardním výpočetním prostředí je k dispozici pouze předdefinovaná sada proměnných prostředí. Proměnné prostředí, které jste nastavili v clusteru, ale které nejsou v této sadě, zůstanou dostupné pro uživatelský kód, včetně UDF, ale nejsou dostupné pro modul Spark nebo inicializační skripty.

Tato sada zahrnuje běžnou konfiguraci, přihlašovací údaje a proměnné modulu runtime. Následující příklady nejsou vyčerpávající:

  • Sítě a proxy servery: HTTP_PROXY, HTTPS_PROXY, NO_PROXY
  • Certifikáty TLS: REQUESTS_CA_BUNDLE, SSL_CERT_FILE
  • Přihlašovací údaje a oblast AWS: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEYAWS_REGION,AWS_DEFAULT_REGION
  • Azure přihlašovací údaje: AZURE_CLIENT_ID, AZURE_CLIENT_SECRET,AZURE_TENANT_ID
  • Přihlašovací údaje Google Cloudu: GOOGLE_APPLICATION_CREDENTIALS
  • Připojení Databricks: DATABRICKS_HOST, DATABRICKS_TOKEN
  • Nastavení oblasti a časové pásmo: TZ, LANG, LC_ALL
  • Paralelismus a podprocesy: OMP_NUM_THREADS, OPENBLAS_NUM_THREADS, MKL_NUM_THREADSNUMEXPR_NUM_THREADS
  • Pozorovatelnost: DD_API_KEY, DD_SITE, DD_ENV
  • Výchozí hodnoty katalogu Unity: CATALOG, CATALOG_NAME

Omezení kernelu Scala

Při použití jádra scala ve standardním výpočetním prostředí platí následující omezení:

  • Některé třídy nelze v kódu použít, pokud jsou v konfliktu s interní knihovnou jádra mandle, zejména Input. Pro seznam definovaných importů mandlí, viz část import mandlí.
  • Přímé protokolování do log4j není podporováno.
  • V uživatelském rozhraní se rozevírací seznam schématu datového rámce nepodporuje.
  • Pokud ovladač dosáhne stavu vyčerpání paměti (Out of Memory), Scala REPL se neukončí.
  • //connector/sql-aws-connectors:sql-aws-connectors není součástí bazel targetu Scala REPL, použijte výsledky v ClassNotFoundException.
  • Jádro Scala není kompatibilní s SQLImplicits.

Omezení závislá na modulu runtime

Následující omezení se vyřešila prostřednictvím aktualizací modulu runtime, ale pokud používáte starší modul runtime, může se stále na vaši úlohu vztahovat.

Podpora jazyků

Vlastnost Požadovaná verze Databricks Runtime
Scala 13.3 nebo vyšší
Ve výchozím nastavení jsou k dispozici všechny knihovny Java a Scala, které jsou součástí běhového prostředí. 15.4 LTS nebo vyšší (pro 15.3 nebo nižší: nastavte spark.databricks.scala.kernel.fullClasspath.enabled=true)

Podpora rozhraní Spark API

Vlastnost Požadovaná verze Databricks Runtime
Spark ML 17,0 nebo vyšší
Python: SparkContext (sc), spark.sparkContextsqlContext 14,0 nebo vyšší
Scala Dataset ops: map, mapPartitions, foreachPartition, flatMap, reduce, filter 15.4 LTS nebo vyšší

Podpora UDF (uživatelem definované funkce)

Vlastnost Požadovaná verze Databricks Runtime
applyInPandas, mapInPandas 14.3 LTS nebo vyšší
Skalární uživatelsky definované funkce a uživatelsky definované agregační funkce Scala 14.3 LTS nebo vyšší
Import modulů ze složek Gitu, souborů pracovního prostoru nebo svazků v UDF PySpark 14.3 LTS nebo vyšší
Použijte vlastní verze grpc, pyarrow nebo protobuf v PySpark UDF prostřednictvím knihoven, které jsou omezeny na poznámkové bloky nebo výpočetní prostředky. 14.3 LTS nebo vyšší
Neskalární UDF v Pythonu a Pandas, včetně UDAF, UDTF a Pandas ve Sparku 14.3 LTS nebo vyšší
Uživatelem definované funkce (UDFs) v Pythonu a uživatelem definované funkce pro Pandas 13.3 LTS nebo vyšší

Podpora streamování

Vlastnost Požadovaná verze Databricks Runtime
transformWithStateInPandas 16.3 nebo vyšší
applyInPandasWithState 14.3 LTS nebo vyšší
Scala foreach 16.1 nebo vyšší
Scala foreachBatch a flatMapGroupsWithState 16.2 nebo vyšší
Scala from_avro 14.2 nebo vyšší
Možnosti Kafky kafka.ssl.truststore.location a kafka.ssl.keystore.location (zadané umístění musí být externím umístěním spravovaným katalogem Unity) 13.3 LTS nebo vyšší
Scala StreamingQueryListener 16.1 nebo vyšší
Interakce Pythonu StreamingQueryListener s objekty spravovanými katalogem Unity 14.3 LTS nebo vyšší

Kromě toho má Python foreachBatch následující změny chování v Databricks Runtime 14.0 a vyšším:

  • print() příkazy zapisují výstup do protokolů ovladačů.
  • K dílčímu dbutils.widgets modulu uvnitř funkce nelze získat přístup.
  • Všechny soubory, moduly nebo objekty odkazované ve funkci musí být serializovatelné a dostupné ve Sparku.

Podpora sítě a systému souborů

Vlastnost Požadovaná verze Databricks Runtime
Připojení k portům jiným než 80 a 443 12.2 LTS nebo vyšší

Omezení konfigurace Sparku

V Databricks Runtime 19 a novějších není možné nastavit následující vlastnosti konfigurace Sparku ve standardním režimu přístupu. Vytvoření nebo úprava clusteru, který nastaví některou z těchto vlastností, nebo vlastnost, která začíná jednou z uvedených předpon (zobrazených na konci .*), selže s chybou. Před upgradem odeberte tyto vlastnosti z konfigurace clusteru, zásad výpočetních prostředků a definic úloh.

Category Omezené vlastnosti konfigurace Sparku
Možnosti JVM, classpath a nativních knihoven spark.driver.extraJavaOptions, spark.driver.defaultJavaOptions, spark.executor.extraJavaOptions, spark.executor.defaultJavaOptions, spark.yarn.am.extraJavaOptions, spark.yarn.am.defaultJavaOptions, spark.driver.extraClassPath, spark.executor.extraClassPath, spark.driver.extraLibraryPath, spark.executor.extraLibraryPath
Injektáž proměnné prostředí spark.executorEnv.*, spark.yarn.appMasterEnv.*, spark.kubernetes.driverEnv.*
Knihovny, soubory JAR a soubory spark.jars, spark.jars.packages, spark.jars.ivy, spark.jars.ivySettings, spark.jars.repositories, spark.files, spark.archives, spark.submit.pyFiles, spark.sql.maven.additionalRemoteRepositories, spark.yarn.jars, spark.yarn.archive, spark.yarn.dist.jars, spark.yarn.dist.files, spark.yarn.dist.archives, spark.yarn.dist.pyFiles, spark.yarn.dist.forceDownloadSchemes
Jar metastoru Hive spark.sql.hive.metastore.jars, spark.sql.hive.metastore.jars.path
Python a spustitelné soubory R spark.pyspark.python, spark.pyspark.driver.python, spark.r.command, , spark.r.driver.commandspark.r.shell.command
Konfigurace podu Kubernetes spark.kubernetes.container.image, spark.kubernetes.driver.container.image, spark.kubernetes.executor.container.image, spark.kubernetes.driver.podTemplateFile, spark.kubernetes.executor.podTemplateFile, spark.kubernetes.driver.volumes.*, spark.kubernetes.executor.volumes.*, spark.kubernetes.driver.secrets.*, spark.kubernetes.executor.secrets.*
Přístup k místnímu systému souborů spark.connect.copyFromLocalToFs.allowDestLocal, spark.sql.artifact.copyFromLocalToFs.allowDestLocal
Izolace Azure Databricks a řízení přístupu spark.databricks.pyspark.enableProcessIsolation, spark.databricks.pyspark.enablePy4JSecurity, spark.databricks.pyspark.runAsLowPrivilegeUser, spark.databricks.pyspark.enableIptables, spark.databricks.pyspark.onlyAllowTrustedFilesystems, spark.databricks.pyspark.trustedFilesystems, spark.databricks.pyspark.pythonUdfsOnly, spark.databricks.acl.dfAclsEnabled, spark.databricks.acl.fileAccess.enabled, spark.databricks.acl.allowTransformUsing, spark.databricks.passthrough.enabled, spark.databricks.runtimeConfigAllowlist.enabled, spark.databricks.runtimeConfigAllowlist.extraConfs, spark.testing.databricks.runtimeConfigAllowlist.enabled, spark.databricks.sql.jdbc.enableLakeguardDriver