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 site Notebook têm um limite de entrada de 6 MB.
O tamanho máximo do site Notebook para o salvamento automático, a importação, a exportação e a clonagem do Snapshot de revisão é 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 mil linhas ou 2 MB, o que for menor.
Job clusters têm um tamanho máximo de saída 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 depuradorNotebook:
O depurador funciona apenas com o Python. Ele não é compatível com Scala ou R.
O depurador não funciona em clusters de modo de acesso compartilhado.
O depurador não é compatível com o passo a passo em arquivos ou módulos externos.
O senhor não pode executar outro comando no site Notebook quando uma sessão de depuração estiver ativa.
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.
ipywidgets
Limitações do ipywidgets:
Um Notebook usando ipywidgets deve ser anexado a um clusters em execução.
Os estados dos widgets não são preservados nas sessões do site Notebook. O senhor deve reexecutar as células do widget para renderizá-las sempre que anexar o Notebook a um cluster.
Não há suporte para os ipywidgets Password e Controller.
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 site Notebook estiver no modo escuro, especialmente os widgets coloridos.
As saídas do widget não podem ser usadas na visualização do painel 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 corretamente.
Widgets do Databricks
Limitações dos widgets da Databricks:
É possível criar um máximo de 512 widgets em um site Notebook.
O nome de um widget é limitado a 1024 caracteres.
O rótulo de um widget é limitado a 2048 caracteres.
Um máximo de 2048 caracteres pode ser inserido 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 depois de pressionar Executar tudo, mesmo depois de limpar ou remover o widget no código. Se isso acontecer, o senhor 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 precisar acessar o estado do widget em um contexto assíncrono, passe-o como um argumento. Por exemplo, se o senhor tiver o seguinte código que usa threads:
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()
Em vez disso, a Databricks recomenda o uso de um argumento:
# 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 a opção Executar tudo ou executar o Notebook como Job. 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]
.