Conectar-se aos dados com o Spark

Concluído

Primeiro, vamos discutir o que os notebooks da Fabric oferecem em relação às outras opções de ingestão. Ao contrário dos uploads manuais, os notebooks oferecem automação, assegurando uma abordagem suavemente sistemática. Os fluxos de dados oferecem uma experiência de interface do usuário; no entanto, eles não são tão eficientes com grandes modelos semânticos. Os pipelines permitem orquestrar os dados de cópia e podem exigir fluxos de dados ou notebooks para transformações. Portanto, os notebooks fornecem uma solução abrangente e automatizada para ingestão e transformação.

Explorar os Notebooks do Fabric

Os notebooks do Fabric podem ser criados facilmente em muitas partes do serviço Fabric. Os notebooks são armazenados no espaço de trabalho a partir do qual foram criados, que pode não ser o mesmo espaço de trabalho onde existe o lakehouse.

Semelhante a outros notebooks, os notebooks do Fabric permitem que você tenha várias células de código ou Markdown. Os notebooks são excelentes para testes iniciais, pois você pode ver a saída do código diretamente em linha com o código e fazer alterações rápidas. Você também pode executar células individuais, congelar células ou executar todas as células em um notebook.

Captura de tela de um notebook do Fabric com células de código e Markdown.

Por padrão, os notebooks Fabric usam um mecanismo Spark para permitir uma transação distribuída e multithread para processos rápidos. Você pode usar PySpark, Html, Spark (Scala), Spark SQL e SparkR (R), dependendo de suas necessidades.

Conectar-se a fontes externas

Agora que conhecemos os conceitos básicos do notebook, vamos dar uma olhada em como fazer a conexão com fontes externas. Um excelente princípio na programação é fazer primeiro da maneira mais fácil. Os notebooks do Fabric oferecem atalhos intuitivos para determinadas plataformas. No entanto, se seus dados residirem em outro lugar, você precisará de outro método. Aqui está um exemplo básico de conexão com o armazenamento de blobs do Azure com o Spark:

# Azure Blob Storage access info
blob_account_name = "<your_blob_account_name>"
blob_container_name = "<your_blob_container_name>"
blob_relative_path = "<your_blob_relative_path>"

# Construct connection path
abfss_path = f'abfss://{blob_container_name}@{blob_account_name}.dfs.core.windows.net/{blob_relative_path}'

# Read data from Azure Blob Storage path into a DataFrame
blob_df = spark.read.parquet(abfss_path)

# Show the DataFrame
blob_df.show()

O código PySpark anterior define os parâmetros e constrói o caminho da conexão, depois lê os dados em um DataFrame e mostra os dados no DataFrame.

Configurar a autenticação alternativa

O exemplo anterior se conecta à fonte e faz a leitura dos dados em um DataFrame. Dependendo da sua fonte, poderá ser necessário um tipo de autenticação diferente, como Service Principal, OAuth, etc. Aqui está um exemplo de conexão com um Banco de Dados SQL do Azure usando autenticação Básica:

# Placeholders for Azure SQL Database connection info
server_name = "<your_server_name>.database.windows.net"
database_name = "<your_database_name>"
table_name = "<YourTableName>"
db_username = "<username>"
db_password = "<password>"

# Build the Azure SQL Database JDBC URL
jdbc_url = f"jdbc:sqlserver://{server_name}:1433;database={database_name};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"

# Properties for the JDBC connection
properties = {
    "user": db_username, 
    "password": db_password,  
    "driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
}

# Read entire table from Azure SQL Database using Basic authentication
sql_df = spark.read.jdbc(url=jdbc_url, table=table_name, properties=properties)

# Show the Azure SQL DataFrame
sql_df.show()

Conectamos com sucesso a dados externos com Spark e os lemos em um DataFrame em um notebook Fabric. A seguir, discutiremos como carregar os dados em um arquivo ou tabela.