Limitações conhecidas Databricks Notebook
Este artigo aborda as limitações conhecidas do Databricks Notebook. Para obter mais limites de recurso, consulte limites de recurso.
Notebook dimensionamento
- As células individuais do Notebook têm um limite de entrada de 6 MB.
- O tamanho máximo do Notebook para a revisão do salvamento automático, importação, exportação e clonagem do Snapshot é de 10 MB.
- O senhor pode salvar manualmente o Notebook em até 32 MB.
Notebook tabela de resultados
- Os resultados da tabela são limitados a 10.000 linhas ou 2 MB, o que for menor.
- Job têm um tamanho máximo de saída do Notebook de 30 MB.
- Os resultados de comando não tabulares têm um limite de 20 MB.
- Em default, os resultados de texto retornam um máximo de 50.000 caracteres. Com Databricks Runtime 12.2 LTS e acima, o senhor pode aumentar esse limite definindo a propriedade de configuração Spark
spark.databricks.driver.maxReplOutputLength
.
Notebook depurador
Limitações do depurador do Notebook:
-
O depurador funciona apenas com o Python. Ele não é compatível com Scala ou R.
-
Para acessar o depurador, o Notebook deve estar conectado a um dos seguintes recursos compute:
- computação sem servidor
- computar com o modo de acesso definido como Standard (anteriormente compartilhado) em Databricks Runtime 14.3 LTS e acima
- computar com o modo de acesso definido como Dedicado (anteriormente, usuário único) em Databricks Runtime 13.3 LTS e acima
- computar com o modo de acesso definido como No Isolation Shared em Databricks Runtime 13.3 LTS e acima
-
O depurador não suporta a entrada em arquivos ou módulos externos.
-
O senhor não pode executar outro comando no Notebook quando uma sessão de depuração estiver ativa.
-
O depurador não oferece suporte à depuração em subprocessos quando conectado ao serverless compute e em cluster com o modo de acesso definido como Padrão .
SQL warehouse Caderno de anotações
Limitações do SQL warehouse Notebook:
- Quando anexado a um SQL warehouse, os contextos de execução têm um tempo limite ocioso de 8 horas.
widgets ipy
Limitações dos ipywidgets:
- Um Notebook que usa ipywidgets deve ser anexado a um cluster em execução.
- Os estados do widget não são preservados entre as sessões do Notebook. O senhor deve reexecutar as células do widget para renderizá-las sempre que anexar o Notebook a um cluster.
- Os widgets Password and Controller ipywidgets não são suportados.
- Os widgets HTMLMath e rótulo com expressões LaTeX não são renderizados corretamente. (Por exemplo,
widgets.Label(value=r'$$\frac{x+1}{x-1}$$')
não é renderizado corretamente.) - Os widgets podem não ser renderizados corretamente se o Notebook estiver no modo escuro, especialmente os widgets coloridos.
- As saídas do widget não podem ser usadas na visualização do painel do Notebook.
- O tamanho máximo da carga útil da mensagem para um ipywidget é de 5 MB. Os widgets que usam imagens ou dados de texto grandes podem não ser renderizados adequadamente.
Widgets do Databricks
Limitações dos widgets da Databricks:
-
Um máximo de 512 widgets pode ser criado em um Notebook.
-
O nome do widget é limitado a 1024 caracteres.
-
O rótulo de um widget é limitado a 2048 caracteres.
-
No máximo 2048 caracteres podem ser inseridos em um widget de texto.
-
Pode haver um máximo de 1024 opções para um widget de seleção múltipla, caixa de combinação ou dropdown.
-
Há um problema conhecido em que o estado de um widget pode não ser limpo corretamente após pressionar Executar tudo , mesmo depois de limpar ou remover o widget no código. Se isso acontecer, você verá uma discrepância entre os estados visual e impresso do widget. Executar novamente as células individualmente pode contornar esse problema. Para evitar totalmente esse problema, a Databricks recomenda o uso do ipywidgets.
-
O senhor não deve acessar o estado do widget diretamente em contextos assíncronos, como threads, subprocessos ou transmissão estruturada(foreachBatch), pois o estado do widget pode mudar enquanto o código assíncrono estiver em execução. Se você precisar acessar o estado do widget em um contexto assíncrono, passe-o como argumento. Por exemplo, se você tiver o seguinte código que usa threads:
Pythonimport 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()Em vez disso, a Databricks recomenda o uso de um argumento:
Python# 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() -
Em geral, os widgets não podem passar argumentos entre idiomas diferentes em um Notebook. O senhor pode criar um widget
arg1
em uma célula Python e usá-lo em uma célula SQL ou Scala se executar uma célula de cada vez. No entanto, isso não funciona se o senhor usar o recurso Executar tudo ou executar o Notebook como um trabalho. Algumas soluções alternativas são:- Para Notebooks que não misturam idiomas, o senhor pode criar um Notebook para cada idioma e passar os argumentos ao executar o Notebook.
- Você pode acessar o widget usando uma
spark.sql()
chamada. Por exemplo, em Python:spark.sql("select getArgument('arg1')").take(1)[0][0]
.