Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta página se incluye una lista de requisitos y limitaciones para el proceso estándar. Si usa el proceso clásico, Databricks recomienda usar el modo de acceso estándar a menos que la carga de trabajo dependa de una de las limitaciones que se enumeran a continuación.
Importante
Los scripts y bibliotecas de inicialización tienen una compatibilidad diferente en los modos de acceso y las versiones de Databricks Runtime. Consulte ¿Dónde se pueden instalar los scripts de inicialización? y Bibliotecas con ámbito de proceso.
Limitaciones de proceso estándar actuales
En las secciones siguientes se enumeran las limitaciones del proceso estándar en función de la versión más reciente de Databricks Runtime. Para conocer las limitaciones que se aplican a las versiones anteriores de Databricks Runtime, consulte Limitaciones dependientes del entorno de ejecución.
Si estas características son necesarias para la carga de trabajo, use el proceso dedicado en su lugar.
Limitaciones generales de computación estándar
- Databricks Runtime para ML no es compatible. En su lugar, instale cualquier biblioteca de ML que no esté incluida con Databricks Runtime como una biblioteca con ámbito de proceso.
- No se admite el cómputo habilitado para GPU.
- No se admiten tareas de trabajo de envío de Spark. En su lugar, use una tarea JAR.
- DBUtils y otros clientes solo pueden leer desde el almacenamiento en la nube mediante una ubicación externa.
- La raíz y los montajes de DBFS no admiten FUSE.
Limitaciones de idioma
- No se admite R.
Limitaciones de la API de Spark
- El contexto de Spark (
sc),spark.sparkContextysqlContextno se admiten para Scala:- Azure Databricks recomienda usar la
sparkvariable para interactuar con laSparkSessioninstancia. - Tampoco se admiten las siguientes funciones
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.
- Azure Databricks recomienda usar la
- No se admite establecer determinadas propiedades de configuración de Spark . Se produce un error al crear o editar un clúster que establece una propiedad restringida. Para obtener la lista completa, consulte Limitaciones de configuración de Spark.
- Al crear un dataframe a partir de datos locales mediante
spark.createDataFrame, los tamaños de fila no pueden superar los 128 MB. - No se admiten las API de RDD.
- Spark Connect, que se usa en versiones más recientes de Databricks Runtime, aplaza el análisis y la resolución de nombres al tiempo de ejecución, lo que puede cambiar el comportamiento del código. Consulte Comparación de Spark Connect con Spark clásico.
Limitaciones de UDF
- No se admiten las UDF de Hive. En su lugar, use UDF en el catálogo de Unity.
- Las UDF de Scala no se pueden usar dentro de funciones de orden superior.
Limitaciones de streaming
Nota:
Algunas de las opciones de Kafka enumeradas tienen compatibilidad limitada cuando se usan para configuraciones admitidas en Azure Databricks. Todas las limitaciones de Kafka enumeradas son válidas tanto para el procesamiento por lotes como para el procesamiento de flujos. Consulte Conexión a Apache Kafka.
- No se admite el uso de fuentes de socket.
- El
sourceArchiveDirdebe estar en la misma ubicación externa que la fuente cuando se utilizaoption("cleanSource", "archive")con una fuente de datos administrada por Unity Catalog. - En el caso de los orígenes y receptores de Kafka, no se admiten las siguientes opciones:
kafka.sasl.client.callback.handler.classkafka.sasl.login.callback.handler.classkafka.sasl.login.classkafka.partition.assignment.strategy
- Python
foreachBatchno admiteThreadPoolExecutorni ejecución multiproceso. La ejecución multiproceso puede no producir errores, pero puede provocar daños en los datos o resultados incoherentes.
Limitaciones del sistema de archivos y de red
- La computación estándar ejecuta comandos como un usuario con bajos privilegios, al que se le prohíbe acceder a partes sensibles del sistema de archivos.
- No se admiten rutas de acceso de estilo POSIX (
/) para DBFS. - Solo los administradores de áreas de trabajo y los usuarios con permisos ANY FILE pueden interactuar directamente con archivos mediante DBFS.
- No se puede conectar al servicio de metadatos de instancia ni a Azure WireServer.
Limitaciones de las variables de entorno
Solo está disponible un conjunto predefinido de variables de entorno para el motor Spark y los scripts de inicialización en el cómputo estándar. Las variables de entorno establecidas en un clúster, pero que no están en este conjunto siguen estando disponibles para el código de usuario, incluidas las UDF, pero no están disponibles para el motor de Spark o los scripts de inicialización.
Este conjunto incluye variables comunes de configuración, credenciales y tiempo de ejecución. Los ejemplos siguientes no son exhaustivos:
- Redes y servidores proxy:
HTTP_PROXY,HTTPS_PROXY,NO_PROXY - Certificados TLS:
REQUESTS_CA_BUNDLE,SSL_CERT_FILE - Credenciales y regiones de AWS:
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_REGION,AWS_DEFAULT_REGION - Azure credenciales:
AZURE_CLIENT_ID,AZURE_CLIENT_SECRET,AZURE_TENANT_ID - Credenciales de Google Cloud:
GOOGLE_APPLICATION_CREDENTIALS - Conexión de Databricks:
DATABRICKS_HOST,DATABRICKS_TOKEN - Configuración regional y zona horaria:
TZ,LANG,LC_ALL - Paralelismo y subproceso:
OMP_NUM_THREADS,OPENBLAS_NUM_THREADS,MKL_NUM_THREADS,NUMEXPR_NUM_THREADS - Observabilidad:
DD_API_KEY, ,DD_SITEDD_ENV - Valores predeterminados del catálogo de Unity:
CATALOG,CATALOG_NAME
Limitaciones del kernel de Scala
Se aplican las siguientes limitaciones al usar el kernel de scala en el proceso estándar:
- Algunas clases no se pueden usar en el código si entran en conflicto con la biblioteca interna del kernel de almendras, en particular
Input. Para obtener una lista de las importaciones definidas de almendras, consulte importaciones de almendras. - No se admite el registro directamente en log4j.
- En la interfaz de usuario, no se admite la lista desplegable de esquema de DataFrame.
- Si el controlador alcanza OOM, REPL de Scala no finalizará.
-
//connector/sql-aws-connectors:sql-aws-connectorsno está en el destino de bazel de REPL de Scala, utilice los resultados enClassNotFoundException. - El kernel de Scala no es compatible con SQLImplicits.
Limitaciones dependientes del entorno de ejecución
Las siguientes limitaciones se han resuelto a través de actualizaciones en tiempo de ejecución, pero es posible que todavía se apliquen a la carga de trabajo si usa un entorno de ejecución anterior.
Compatibilidad con idiomas
| Característica | Versión necesaria de Databricks Runtime |
|---|---|
| Scala | 13.3 o superior |
| Todas las bibliotecas de Java y Scala agrupadas en tiempo de ejecución disponibles de forma predeterminada | 15.4 LTS o superior (para 15.3 o inferior, establezca spark.databricks.scala.kernel.fullClasspath.enabled=true) |
Compatibilidad con la API de Spark
| Característica | Versión necesaria de Databricks Runtime |
|---|---|
| Spark ML | 17.0 o superior |
Python: SparkContext (sc)spark.sparkContextsqlContext |
14.0 o superior |
Scala Dataset ops: map, mapPartitions, foreachPartition, flatMap, reduce, filter |
15.4 LTS o superior |
Compatibilidad con UDF
| Característica | Versión necesaria de Databricks Runtime |
|---|---|
applyInPandas, mapInPandas |
14.3 LTS o superior |
| UDF escalares de Scala y UDAF de Scala | 14.3 LTS o superior |
| Importación de módulos desde carpetas de Git, archivos de área de trabajo o volúmenes en UDF de PySpark | 14.3 LTS o superior |
Utilización de versiones personalizadas de grpc, pyarrow o protobuf en UDFs de PySpark a través de bibliotecas de ámbito computacional o cuadernos. |
14.3 LTS o superior |
| UDFs no escalares de Python y Pandas, incluidos los UDAFs, UDTFs y Pandas en Spark | 14.3 LTS o superior |
| UDFs escalares de Python y UDFs de Pandas | 13.3 LTS o superior |
Compatibilidad con streaming
| Característica | Versión necesaria de Databricks Runtime |
|---|---|
transformWithStateInPandas |
16.3 o superior |
applyInPandasWithState |
14.3 LTS o superior |
Scala foreach |
16.1 o superior |
Scala foreachBatch y flatMapGroupsWithState |
16.2 o superior |
Scala from_avro |
14.2 o superior |
Opciones kafka.ssl.truststore.location de Kafka y kafka.ssl.keystore.location (la ubicación especificada debe ser una ubicación externa administrada por el catálogo de Unity) |
13.3 LTS o superior |
Scala StreamingQueryListener |
16.1 o superior |
Interacción de Python StreamingQueryListener con objetos administrados por el catálogo de Unity |
14.3 LTS o superior |
Además, para Python, foreachBatch tiene los siguientes cambios de comportamiento en Databricks Runtime 14.0 y versiones posteriores:
- Los comandos
print()escriben la salida en los registros del controlador. - No se puede acceder al submódulo
dbutils.widgetsdentro de la función. - Cualquier archivo, módulo u objeto referenciado en la función debe ser serializable y estar disponible en Spark.
Compatibilidad de red y sistema de archivos
| Característica | Versión necesaria de Databricks Runtime |
|---|---|
| Conexiones a puertos distintos de 80 y 443 | 12.2 LTS o superior |
Limitaciones de configuración de Spark
En Databricks Runtime 19 y versiones posteriores, no puede establecer las siguientes propiedades de configuración de Spark en modo de acceso estándar. Al crear o editar un clúster que establece cualquiera de estas propiedades, o una propiedad que comienza con uno de los prefijos enumerados (que se muestra con un final .*), se produce un error. Quite estas propiedades de la configuración del clúster, las directivas de proceso y las definiciones de trabajo antes de actualizar.
| Categoría | Propiedades de configuración restringidas de Spark |
|---|---|
| Opciones de JVM, classpath y biblioteca nativa |
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 |
| Inserción de variables de entorno |
spark.executorEnv.*, , spark.yarn.appMasterEnv.*, spark.kubernetes.driverEnv.* |
| Bibliotecas, JAR y archivos |
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 |
| archivos JAR del metastore de Hive |
spark.sql.hive.metastore.jars, spark.sql.hive.metastore.jars.path |
| archivos ejecutables de Python y R |
spark.pyspark.python, spark.pyspark.driver.python, spark.r.command, , spark.r.driver.command, spark.r.shell.command |
| Configuración del pod de 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.* |
| Acceso al sistema de archivos local |
spark.connect.copyFromLocalToFs.allowDestLocal, spark.sql.artifact.copyFromLocalToFs.allowDestLocal |
| Aislamiento y control de acceso de Azure Databricks |
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 |