Limitaciones de proceso sin servidor
En este artículo se explican las limitaciones actuales de la computación sin servidor para notebooks y tareas. 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 cómputo sin servidor está disponible para todos los usuarios del espacio de trabajo.
- No se admiten etiquetas de cuaderno. Use directivas de presupuesto sin servidor para etiquetar el uso sin servidor.
- 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 del modo de acceso estándar de Databricks (anteriormente denominada modo de acceso compartido). A continuación se enumeran las limitaciones más relevantes heredadas del modo de acceso estándar, junto con limitaciones adicionales específicas de sin servidor. Para obtener una lista completa de las limitaciones del modo de acceso estándar, consulte Limitaciones del modo de acceso de proceso para catálogo de Unity.
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.
- Los registros de Spark no están disponibles cuando se usan cuadernos y trabajos sin servidor. Los usuarios solo tienen acceso a los registros de aplicaciones del lado cliente.
- 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 estándar. Consulte Limitaciones y requisitos de streaming para el modo de acceso estándar del catálogo de Unity.
Limitaciones del aprendizaje automático
- No se admiteDatabricks Runtime for Machine Learning y Apache Spark MLlib.
- No se admiten GPU.
Limitaciones de los cuadernos
- 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 cómputo sin servidor para tareas está actualmente fijo y no se puede cambiar.
- Los registros de tareas no están aislados por cada ejecución de una tarea. 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 específicas de Python para Notebook.
Limitaciones específicas de cómputo
No se admiten las siguientes características específicas de la computación.
- Políticas de computación
- 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.
- Grupos de instancias
- Registros de eventos de proceso
- La mayoría de las configuraciones de cálculo 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 APIs de dataframe y caché de SQL no se admiten en la computación 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 LOAD DATA correspondiente 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, utilice las referencias a las variables de sesión DECLARE VARIABLE, SET VARIABLEy , las variables de sesión SQL y los marcadores de parámetro ("?") o ":var" para declarar, modificar y referirse al estado de sesión. También puede usar la cláusula IDENTIFIER para parametrizar nombres de objeto en muchos casos.