Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa pagina illustra le limitazioni note dei notebook di Databricks. Per altri limiti delle risorse, vedere Limiti delle risorse.
Ridimensionamento dei notebook
- Il salvataggio automatico, il salvataggio manuale e la clonazione degli snapshot di revisione sono supportati per tutti i notebook fino a 100 MB.
- L'importazione e l'esportazione sono supportate per i notebook IPYNB fino a 100 MB.
- L'importazione e l'esportazione sono supportate per l'archivio DBC, HTML, R Markdown e i notebook di origine fino a 500 MB.
- Le singole celle del notebook hanno un limite di input di 6 MB.
Output delle celle del notebook
- I risultati della tabella sono limitati a 10.000 righe o 2 MB, a seconda di quale sia il minore.
- I cluster di processi hanno una dimensione massima di output del notebook di 30 MB.
- In Databricks Runtime 17.0 e versioni successive e nella versione 3 dell'ambiente serverless:
- Per impostazione predefinita, le dimensioni massime di output delle celle sono pari a 10 MB.
- Questo limite può essere personalizzato nelle celle di Python a qualsiasi valore compreso tra 1 MB e 20 MB (inclusi) usando il magic della cella seguente:
%set_cell_max_output_size_in_mb <size_in_MB>. Questo limite verrà quindi applicato a tutte le celle del notebook. - Quando l'output della cella supera il limite di dimensioni configurato, l'output viene troncato per rientrare nel limite. Il troncamento viene applicato in modo da preservare il più output utile possibile.
- In Databricks Runtime 16.4 LTS e versioni successive e l'ambiente serverless 2 e versioni successive:
- I risultati di testo restituiscono un massimo di 50.000 caratteri.
- In Databricks Runtime 12.2 e versioni successive è possibile aumentare questo limite fino a 20 MB impostando la proprietà di configurazione spark ,
spark.databricks.driver.maxReplOutputLength. - Quando l'output della cella supera il limite di dimensioni configurato, l'output viene completamente rimosso.
Debugger del notebook
Limitazioni del debugger del notebook:
- Il debugger funziona solo con Python. Non supporta Scala o R.
- Per accedere al debugger, il notebook deve essere connesso a una delle risorse di calcolo seguenti:
- di calcolo serverless
- Calcolo con la modalità di accesso impostata su Standard (in precedenza condiviso) in Databricks Runtime 14.3 LTS e versioni successive.
- Calcolo con modalità di accesso impostata su Dedicato (in precedenza utente singolo) in Databricks Runtime 13.3 LTS e versioni successive
- Calcolo con modalità di accesso impostata su Nessun isolamento condiviso in Databricks Runtime 13.3 LTS e versioni successive
- Il debugger non supporta l'esecuzione di istruzioni nelle librerie Python.
- Non è possibile eseguire altri comandi nel notebook quando è attiva una sessione di debug.
- Il debugger non supporta il debug nei sottoprocessi quando si è connessi a calcolo serverless e a cluster con modalità di accesso impostata su Standard.
Notebook di SQL Warehouse
Limitazioni dei notebook di SQL Warehouse:
- Quando si è collegati a un data warehouse SQL, i contesti di esecuzione hanno un timeout di inattività di 8 ore.
ipywidgets (una libreria Python per widget interattivi)
Limitazioni di ipywidgets:
- Un notebook che usa ipywidgets deve essere collegato a un cluster in esecuzione.
- Gli stati del widget non vengono mantenuti tra le sessioni del notebook. È necessario eseguire nuovamente le celle del widget per eseguirne il rendering ogni volta che si collega il notebook a un cluster.
- Gli ipywidget password e controller non sono supportati.
- I widget HTMLMath e Label con espressioni LaTeX non vengono visualizzati correttamente. Ad esempio,
widgets.Label(value=r'$$\frac{x+1}{x-1}$$')il rendering non viene eseguito correttamente. - I widget potrebbero non essere visualizzati correttamente se il notebook è in modalità scura, in particolare i widget colorati.
- Gli output dei widget non possono essere usati nelle visualizzazioni del dashboard del notebook.
- La dimensione massima del payload del messaggio per un ipywidget è di 5 MB. Il rendering dei widget che usano immagini o dati di testo di grandi dimensioni potrebbe non essere eseguito correttamente.
Widget di Databricks
Limitazioni dei widget di Databricks:
È possibile creare un massimo di 512 widget in un notebook.
Un nome di widget è limitato a 1024 caratteri.
Un'etichetta del widget è limitata a 2048 caratteri.
Un massimo di 2048 caratteri può essere immesso in un widget di testo.
Possono essere disponibili un massimo di 1024 opzioni per un widget a selezione multipla, casella combinata o elenco a discesa.
Si verifica un problema noto per cui uno stato del widget potrebbe non essere chiaro correttamente dopo aver premuto Esegui tutto, anche dopo aver cancellato o rimosso il widget nel codice. In questo caso, si noterà una discrepanza tra gli stati di visualizzazione e stampati del widget. La ripetizione dell'esecuzione delle celle singolarmente potrebbe ignorare questo problema. Per evitare questo problema, Databricks consiglia di usare ipywidgets.
Non accedere allo stato del widget direttamente in contesti asincroni come thread, sottoprocessi o Structured Streaming (foreachBatch), perché lo stato del widget può cambiare durante l'esecuzione del codice asincrono. Se è necessario accedere allo stato del widget in un contesto asincrono, passarlo come argomento. Ad esempio, se si dispone del codice seguente che usa thread:
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 consiglia invece di usare un argomento:
# 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()I widget non possono in genere passare argomenti tra lingue diverse all'interno di un notebook. È possibile creare un widget
arg1in una cella Python e usarlo in una cella SQL o Scala se si esegue una cella alla volta. Tuttavia, questo non funziona se si usa Esegui tutto o si esegue il notebook come processo. Alcune soluzioni alternative sono:- Per i notebook che non combinano lingue, è possibile creare un notebook per ogni lingua e passare gli argomenti quando si esegue il notebook.
- È possibile accedere al widget usando una
spark.sql()chiamata. Ad esempio, in Python:spark.sql("select getArgument('arg1')").take(1)[0][0].