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 este artículo se tratan las limitaciones conocidas de los cuadernos de Databricks. Para obtener más límites de recursos, consulte Límites de recursos.
Ajuste de tamaño del bloc de notas
- Las celdas individuales del cuaderno tienen un límite de entrada de 6 MB.
- El tamaño máximo del cuaderno para las instantáneas de revisión guardado automático, importación, exportación y clonación es de 10 MB.
- Puede guardar manualmente cuadernos de hasta 32 MB.
Resultados de celda del notebook
- Los resultados de la tabla se limitan a 10 000 filas o 2 MB, lo que sea menor.
- Los clústeres de trabajo tienen un tamaño máximo de salida del cuaderno de 30 MB.
- En Databricks Runtime 17.0 y versiones posteriores:
- El tamaño máximo de salida de celda tiene como valor predeterminado 10 MB.
- Este límite se puede personalizar en celdas de Python en cualquier valor entre 1 MB y 20 MB (ambos incluidos) mediante la siguiente instrucción mágica de celda:
%set_cell_max_output_size_in_mb <size_in_MB>
. Este límite se aplicará a todas las celdas del cuaderno. - Cuando la salida de celda supera el límite de tamaño configurado, la salida se trunca para ajustarse al límite. El truncamiento se aplica de una manera de conservar la mayor cantidad de resultados útiles posible.
- En Databricks Runtime 16.4 LTS y a continuación:
- Los resultados de texto devuelven un máximo de 50 000 caracteres.
- En Databricks Runtime 12.2 y versiones posteriores, puede aumentar este límite hasta 20 MB estableciendo la propiedad de configuración de Spark,
spark.databricks.driver.maxReplOutputLength
. - Cuando la salida de celda supera el límite de tamaño configurado, la salida se descarta por completo.
Depurador de cuadernos
Limitaciones del depurador de cuadernos:
- El depurador solo funciona con Python. No admite Scala ni R.
- Para acceder al depurador, el cuaderno debe estar conectado a uno de los siguientes recursos de proceso:
- Procesamiento sin servidor
- Calcular con el modo de acceso establecido en Estándar (anteriormente compartido) en Databricks Runtime 14.3 LTS y versiones posteriores
- Proceso con modo de acceso establecido en Dedicado (anteriormente usuario único) en Databricks Runtime 13.3 LTS y versiones posteriores
- Proceso con modo de acceso establecido en Sin aislamiento compartido en Databricks Runtime 13.3 LTS y versiones posteriores
- El depurador no admite depurar paso a paso por instrucciones en módulos o archivos externos.
- Cuando una sesión de depuración está activa, no se pueden ejecutar otros comandos en el cuaderno.
- El depurador no admite la depuración en subprocesos cuando se conecta a clústeres y proceso sin servidor con el modo de acceso establecido en Estándar.
Cuadernos de almacenamiento de SQL
Limitaciones de cuadernos de almacenamiento de SQL:
- Cuando se asocia a un almacenamiento SQL, los contextos de ejecución tienen un tiempo de espera de inactividad de 8 horas.
ipywidgets
Limitaciones de ipywidgets:
- Un cuaderno que use ipywidgets se debe conectar a un clúster en ejecución.
- Los estados del widget no se conservan entre sesiones del cuaderno. Debe volver a ejecutar las celdas de widget para representarlas cada vez que conecte el cuaderno a un clúster.
- Los ipywidgets Contraseña y Controlador no son compatibles.
- Los widgets HTMLMath y Label con expresiones LaTeX no se representan correctamente. (Por ejemplo,
widgets.Label(value=r'$$\frac{x+1}{x-1}$$')
no se representa correctamente). - Es posible que los widgets no se represente correctamente si el cuaderno está en modo oscuro, especialmente los widgets con colores.
- Las salidas del widget no se pueden usar en las vistas del panel del cuaderno.
- El tamaño máximo de la carga del mensaje de un ipywidget es de 5 MB. Es posible que los widgets que usan imágenes o datos de texto de gran tamaño no se representen correctamente.
Widgets de Databricks
Limitaciones de los widgets de Databricks:
Se pueden crear un máximo de 512 widgets en un cuaderno.
Un nombre de widget está limitado a 1024 caracteres.
Una etiqueta de widget está limitada a 2048 caracteres.
Un máximo de 2048 caracteres puede ser entrada en un widget de texto.
Puede haber un máximo de 1024 opciones para un widget de selección múltiple, cuadro combinado o widget desplegable.
Hay un problema conocido por el que un estado del widget puede no borrarse correctamente después de presionar Ejecutar todo, incluso después de borrar o quitar el widget en el código. Si esto sucede, verá una discrepancia entre el estado visual del widget y su estado impreso. Volver a ejecutar las celdas individualmente puede esquivar este problema. Para evitar este problema por completo, Databricks recomienda usar ipywidgets.
No debe tener acceso al estado del widget directamente en contextos asincrónicos como subprocesos, subprocesos o Structured Streaming (foreachBatch), ya que el estado del widget puede cambiar mientras se ejecuta el código asincrónico. Si necesita acceder al estado del widget en un contexto asincrónico, páselo como argumento. Por ejemplo, si tiene el código siguiente que usa subprocesos:
import threading def thread_func(): # Unsafe access in a thread value = dbutils.widgets.get('my_widget') print(value) thread = threading.Thread(target=thread_func) thread.start() thread.join()
Databricks recomienda usar un argumento en su lugar:
# Access widget values outside the asynchronous context and pass them to the function value = dbutils.widgets.get('my_widget') def thread_func(val): # Use the passed value safely inside the thread print(val) thread = threading.Thread(target=thread_func, args=(value,)) thread.start() thread.join()
Por lo general, los widgets no pueden pasar argumentos entre distintos idiomas dentro de un cuaderno. Puede crear un widget
arg1
en una celda Python y usarlo en una celda SQL o Scala si ejecuta una celda a la vez. Sin embargo, esto no funciona si usa Ejecutar todo o ejecuta el cuaderno como un trabajo. Algunas soluciones alternativas son:- En el caso de los cuadernos que no mezclan idiomas, puede crear un cuaderno para cada idioma y pasar los argumentos al ejecutar el cuaderno.
- Puede acceder al widget mediante una llamada
spark.sql()
. Por ejemplo, en Python:spark.sql("select getArgument('arg1')").take(1)[0][0]
.