Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode armazenar o código Python em pastas Git Databricks ou em arquivos de espaço de trabalho e, em seguida, importar esse código Python para seu pipeline. Para obter mais informações sobre como trabalhar com módulos em pastas Git ou arquivos de espaço de trabalho, consulte Trabalhar com módulos Python e R.
Para importar um arquivo Python, você tem várias opções:
- Inclua o módulo Python em seu pipeline, como um arquivo utilitário. Isso funciona melhor se o módulo for específico para o pipeline.
- Adicione um módulo compartilhado ao seu ambiente de pipeline, em qualquer pipeline que precise usá-lo.
- Importe um módulo diretamente para o seu código-fonte Python no seu espaço de trabalho, com uma instrução
import.
Incluir um módulo Python em um pipeline
Você pode criar um módulo Python como parte do seu pipeline. A pasta raiz do pipeline é automaticamente anexada ao sys.path. Isso permite que você faça referência ao módulo diretamente no código-fonte Python do seu pipeline.
O exemplo a seguir demonstra a criação de um módulo Python na pasta raiz do pipeline e a referência a ele a partir de um arquivo de origem Python na origem do pipeline:
Abra a sua linha de processamento no editor de linha de processamento.
No navegador de ativos de pipeline à esquerda, clique no
Adicionar e, em seguida, escolha Utilitário no menu.
Digite
my_utils.pypara o Nome.Deixe o caminho padrão e clique em Criar.
Isso cria o arquivo
my_utils.pyna pastautilitiesdo seu pipeline e cria a pastautilities, se ela não existir. Os ficheiros nesta pasta não são adicionados à origem do pipeline por padrão, mas estão disponíveis para serem chamados a partir dos.pyficheiros que fazem parte do código-fonte.Por padrão, o arquivo utilitário tem uma função de exemplo chamada
distance_km()que leva uma distância em milhas e a converte.Em um arquivo de origem Python em sua pasta de transformações (você pode criar um escolhendo
Adicionar e, em seguida, selecionar Transformação no menu), adicione o seguinte código:
from utilities import my_utils
Agora podes chamar funções em my_utils a partir desse ficheiro Python. Você deve adicionar a instrução import a qualquer arquivo Python que precise chamar funções do módulo.
Adicionar um módulo Python ao seu ambiente de pipeline
Se você quiser compartilhar um módulo Python em vários pipelines, poderá salvá-lo em qualquer lugar em seus arquivos de espaço de trabalho e fazer referência a ele a partir do ambiente de qualquer pipeline que precise usá-lo. Você pode fazer referência a módulos Python que são:
- Arquivos Python (
.py) individuais. - Projeto Python empacotado como um arquivo de roda Python (
.whl). - Projeto Python não empacotado com um
pyproject.tomlarquivo (para definir o nome e a versão do projeto).
O exemplo a seguir mostra como adicionar uma dependência a um pipeline.
Abra a sua linha de processamento no editor de linha de processamento.
Clique no
Configurações na barra superior.
No painel de Configurações de Pipeline, na secção Ambiente de Pipeline, clique no
Editar ambiente.
Adicione uma dependência. Por exemplo, para adicionar um arquivo em seu espaço de trabalho, você pode adicionar
/Volumes/libraries/path/to/python_files/file.py. Para uma roda Python armazenada em pastas Git, seu caminho pode se parecer com/Workspace/libraries/path/to/wheel_files/file.whl.Você pode adicionar um arquivo sem caminho, ou um caminho relativo, se ele estiver na pasta raiz do pipeline.
Observação
Você também pode adicionar um caminho a um diretório compartilhado usando as dependências para permitir que import comandos em seu código encontrem os módulos que deseja importar. Por exemplo, -e /Workspace/Users/<user_name>/path/to/add/.
Importar um módulo Python usando a import instrução
Você também pode fazer referência direta a um arquivo de espaço de trabalho em seu código-fonte Python.
Se o ficheiro estiver na pasta
utilitiesdo seu pipeline, poderá referenciá-lo sem um caminho:from utilities import my_moduleSe o arquivo estiver em qualquer outro lugar, você pode importá-lo primeiro anexando o caminho do módulo ao
sys.path:import sys, os sys.path.append(os.path.abspath('<module-path>')) from my_module import *Você também pode incluir no
sys.pathtodos os arquivos de origem do pipeline, inserindo o caminho no ambiente do pipeline, conforme descrito na seção anterior.
Exemplo de importação de consultas como módulos Python
O exemplo a seguir demonstra a importação de consultas de conjunto de dados como módulos Python de arquivos de espaço de trabalho. Embora este exemplo descreva o uso de arquivos de espaço de trabalho para armazenar o código-fonte do pipeline, você pode usá-lo com o código-fonte armazenado em uma pasta Git.
Para executar este exemplo, use as seguintes etapas:
Clique no
Espaço de trabalho na barra lateral do seu espaço de trabalho do Azure Databricks para abrir o navegador de espaço de trabalho.
Use o navegador de espaço de trabalho para selecionar um diretório para os módulos Python.
Clique no
na coluna mais à direita do diretório selecionado e clique em Criar > arquivo.
Insira um nome para o arquivo, por exemplo,
clickstream_raw_module.py. O editor de arquivos é aberto. Para criar um módulo para ler dados de origem em uma tabela, digite o seguinte na janela do editor:from pyspark import pipelines as dp json_path = "/databricks-datasets/wikipedia-datasets/data-001/clickstream/raw-uncompressed-json/2015_2_clickstream.json" def create_clickstream_raw_table(spark): @dp.table def clickstream_raw(): return ( spark.read.json(json_path) )Para criar um módulo que cria uma nova tabela contendo dados preparados, crie um novo arquivo no mesmo diretório, insira um nome para o arquivo, por exemplo,
clickstream_prepared_module.py, e digite o seguinte na nova janela do editor:from clickstream_raw_module import * from pyspark import pipelines as dp from pyspark.sql.functions import * from pyspark.sql.types import * def create_clickstream_prepared_table(spark): create_clickstream_raw_table(spark) @dp.table @dp.expect("valid_current_page_title", "current_page_title IS NOT NULL") @dp.expect_or_fail("valid_count", "click_count > 0") def clickstream_prepared(): return ( spark.read("clickstream_raw") .withColumn("click_count", expr("CAST(n AS INT)")) .withColumnRenamed("curr_title", "current_page_title") .withColumnRenamed("prev_title", "previous_page_title") .select("current_page_title", "click_count", "previous_page_title") )Em seguida, crie um arquivo Python na origem do pipeline. No editor de pipeline, escolha o
Adicionar, em seguida, transformação.
Nomeie seu arquivo e confirme que Python é a linguagem padrão.
Clique em Criar.
Insira o código de exemplo a seguir no bloco de anotações.
Observação
Se o seu notebook importar módulos ou pacotes de um caminho dos ficheiros do espaço de trabalho ou de um caminho das pastas Git diferente do diretório do notebook, deverá anexar manualmente o caminho aos ficheiros usando
sys.path.append().Se estiveres a importar um ficheiro de uma pasta Git, deves acrescentar
/Workspace/ao caminho. Por exemplo,sys.path.append('/Workspace/...'). Omitir/Workspace/do caminho resulta em um erro.Se os módulos ou pacotes estiverem armazenados no mesmo diretório do bloco de anotações, não será necessário acrescentar o caminho manualmente. Você também não precisa acrescentar manualmente o caminho ao importar do diretório raiz de uma pasta Git porque o diretório raiz é automaticamente anexado ao caminho.
import sys, os sys.path.append(os.path.abspath('<module-path>')) from pyspark import pipelines as dp from clickstream_prepared_module import * from pyspark.sql.functions import * from pyspark.sql.types import * create_clickstream_prepared_table(spark) @dp.table( comment="A table containing the top pages linking to the Apache Spark page." ) def top_spark_referrers(): return ( spark.read.table("catalog_name.schema_name.clickstream_prepared") .filter(expr("current_page_title == 'Apache_Spark'")) .withColumnRenamed("previous_page_title", "referrer") .sort(desc("click_count")) .select("referrer", "click_count") .limit(10) )Substitua
<module-path>pelo caminho para o diretório que contém os módulos Python a serem importados.Para executar o pipeline, clique em Executar pipeline.