Limitaciones de proceso sin servidor
En este artículo se explican las limitaciones actuales del proceso sin servidor para cuadernos y trabajos. Comienza con una visión general de las consideraciones más importantes y, a continuación, proporciona una lista de referencia completa de las limitaciones.
Información general sobre las limitaciones
Antes de crear nuevas cargas de trabajo o migrar cargas de trabajo a un proceso sin servidor, tenga en cuenta las siguientes limitaciones:
- Python y SQL son los únicos lenguajes admitidos.
- Solo se admiten las API de conexión de Spark. No se admiten las API de RDD de Spark.
- No se admiten bibliotecas JAR. Para obtener soluciones alternativas, consulte Procedimientos recomendados para el proceso sin servidor.
- El proceso sin servidor tiene acceso sin restricciones para todos los usuarios del área de trabajo.
- No se admiten etiquetas de cuaderno.
- En el caso del streaming, solo se puede usar la lógica por lotes incremental. No hay compatibilidad con intervalos de desencadenador predeterminados o basados en tiempo. Consulte Limitaciones de streaming.
Lista de referencias de limitaciones
En las siguientes secciones se enumeran las limitaciones actuales del proceso sin servidor.
El proceso sin servidor se basa en la arquitectura de proceso compartida. A continuación se enumeran las limitaciones más pertinentes heredadas del proceso compartido, junto con limitaciones adicionales específicas de sin servidor. Para obtener una lista completa de las limitaciones de proceso compartido, vea Limitaciones del modo de acceso de proceso para Unity Catalog.
Limitaciones generales
No se admite Scala y R.
ANSI SQL es el lenguaje predeterminado al escribir SQL. Para no usar el modo ANSI, establezca
spark.sql.ansi.enabled
enfalse
.No se admiten las API de RDD de Spark.
No se admite el contexto de Spark (sc),
spark.sparkContext
, ysqlContext
.No se admite Databricks Container Services.
No se admite el terminal web.
No se puede ejecutar ninguna consulta durante más de 48 horas.
Debe usar Unity Catalog para conectarse a orígenes de datos externos. Use ubicaciones externas para acceder al almacenamiento en la nube.
La compatibilidad con orígenes de datos se limita a AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEXT y XML.
Las funciones definidas por el usuario (UDF) no pueden acceder a Internet. Debido a esto, no se admite el comando CREATE FUNCTION (externo ). Databricks recomienda usar CREATE FUNCTION (SQL y Python) para crear UDF.
Las filas individuales no deben superar el tamaño máximo de 128MB.
La interfaz de usuario de Spark no está disponible. En su lugar, use el perfil de consulta para ver información sobre las consultas de Spark. Consulte Perfil de consulta.
Solo se permite el acceso entre áreas de trabajo si las áreas de trabajo están en la misma región y el área de trabajo de destino no tiene configurada una ACL de IP o PrivateLink de front-end.
No se admiten vistas temporales globales. Databricks recomienda usar vistas temporales de sesión o crear tablas en las que se requieran pasos de datos entre sesiones.
Limitaciones de streaming
- No hay compatibilidad con intervalos de desencadenador predeterminados o basados en tiempo. Solo se admite
Trigger.AvailableNow
. Vea Configurar intervalos del desencadenador de Structured Streaming. - También se aplican todas las limitaciones de streaming en modo de acceso compartido. Consulte Limitaciones y requisitos de streaming para el modo de acceso compartido a Unity Catalog.
Limitaciones del aprendizaje automático
- No se admiteDatabricks Runtime for Machine Learning y Apache Spark MLlib.
- No se admiten GPU.
Limitaciones de cuadernos
- Los cuadernos tienen acceso a 8GB de memoria que no se puede configurar.
- Las bibliotecas con ámbito de cuaderno no se almacenan en caché en las sesiones de desarrollo.
- No se admite el uso compartido de tablas y vistas TEMP cuando se comparte un cuaderno entre usuarios.
- No se admitenAutocompletar y Explorador de variables para tramas de datos en cuadernos.
Limitaciones del flujo de trabajo
- El tamaño del controlador para el proceso sin servidor para los trabajos se ha corregido actualmente y no se puede cambiar.
- Los registros de tareas no están aislados por ejecución de tareas. Los registros contendrán la salida de varias tareas.
- Las bibliotecas de tareas no se admiten para las tareas de cuaderno. En su lugar, use bibliotecas con ámbito de cuaderno. Consulte Bibliotecas de Python cuyo ámbito es Notebook.
Limitaciones específicas del proceso
No se admiten las siguientes características específicas del proceso:
- Directivas de proceso
- Scripts de inicialización con ámbito de proceso
- Bibliotecas con ámbito de proceso, incluidos orígenes de datos personalizados y extensiones de Spark. Use bibliotecas con ámbito de cuaderno en su lugar.
- Configuraciones de acceso a datos de nivel de proceso, incluidos los perfiles de instancia. Como consecuencia, el acceso a tablas y archivos a través de HMS en rutas de acceso a la nube o con montajes DBFS que no tienen credenciales incrustadas, no funcionará.
- Grupos de instancias
- Registros de eventos de proceso
- La mayoría de las configuraciones de proceso de Apache Spark. Para obtener una lista de las configuraciones admitidas, consulte Parámetros de configuración de Spark admitidos.
- Variables de entorno. En su lugar, Databricks recomienda usar widgets para crear parámetros de trabajo y tarea.
Limitaciones de almacenamiento en caché
Las API de dataframe y caché de SQL no se admiten en el proceso sin servidor. El uso de cualquiera de estas API o comandos SQL producirá una excepción.
- df.cache(), df.persist()
- df.unpersist()
- spark.catalog.cacheTable()
- spark.catalog.uncacheTable()
- spark.catalog.clearCache()
- CACHE TABLE
- UNCACHE TABLE
- REFRESH TABLE
- CLEAR CACHE
Limitaciones de Hive
No se admiten las tablas de Hive SerDe. Además, no se admite el comando correspondiente LOAD DATA que carga datos en una tabla SerDe de Hive. El uso del comando producirá una excepción.
La compatibilidad con orígenes de datos se limita a AVRO, BINARYFILE, CSV, DELTA, JSON, KAFKA, ORC, PARQUET, ORC, TEXT y XML.
Variables de Hive (por ejemplo,
${env:var}
,${configName}
,${system:var}
, yspark.sql.variable
) o referencias de variables de configuración mediante la${var}
sintaxis no se admiten. El uso de variables de Hive producirá una excepción.En su lugar, use DECLARE VARIABLE, SET VARIABLE, y Referencias a variables de sesión SQL y marcadores de parámetros (‘?’, o ‘:var’) para declarar, modificar y hacer referencia al estado de sesión. También puede usar la cláusula IDENTIFIER para parametrizar nombres de objeto en muchos casos.