Pode utilizar o Pandas no Azure Databricks?
O Databricks Runtime inclui o Pandas como um dos pacotes Python padrão, permitindo-lhe criar e tirar partido do DataFrames do Pandas em blocos de notas e trabalhos do Databricks.
No Databricks Runtime 10.4 LTS e superior, a API do Pandas no Spark fornece comandos pandas familiares sobre os DataFrames do PySpark. Também pode converter o DataFrames entre o Pandas e o PySpark.
O Apache Spark inclui a execução otimizada para setas da lógica Python na forma de APIs de função pandas, que permitem aos usuários aplicar transformações pandas diretamente aos DataFrames PySpark. O Apache Spark também suporta pandas UDFs, que usam otimizações de seta semelhantes para funções de usuário arbitrárias definidas em Python.
Onde os pandas armazenam dados no Azure Databricks?
Você pode usar pandas para armazenar dados em muitos locais diferentes no Azure Databricks. Sua capacidade de armazenar e carregar dados de alguns locais depende das configurações definidas pelos administradores do espaço de trabalho.
Nota
O Databricks recomenda o armazenamento de dados de produção no armazenamento de objetos em nuvem. Consulte Conectar-se ao Azure Data Lake Storage Gen2 e Blob Storage.
Se estiver num espaço de trabalho com Catálogo Unity ativado, pode aceder ao armazenamento em nuvem com localizações externas. Consulte Criar um local externo para conectar o armazenamento em nuvem ao Azure Databricks.
Para exploração rápida e dados sem informações confidenciais, você pode salvar dados com segurança usando caminhos relativos ou o DBFS, como nos exemplos a seguir:
import pandas as pd
df = pd.DataFrame([["a", 1], ["b", 2], ["c", 3]])
df.to_csv("./relative_path_test.csv")
df.to_csv("/dbfs/dbfs_test.csv")
Você pode explorar arquivos gravados no DBFS com o %fs
comando magic, como no exemplo a seguir. Observe que o /dbfs
diretório é o caminho raiz para esses comandos.
%fs ls
Quando você salva em um caminho relativo, o local do arquivo depende de onde você executa o código. Se você estiver usando um bloco de anotações Databricks, seu arquivo de dados será salvo no armazenamento de volume conectado ao driver do cluster. Os dados armazenados neste local são excluídos permanentemente quando o cluster é encerrado. Se você estiver usando pastas Databricks Git com suporte a arquivos arbitrários habilitado, seus dados serão salvos na raiz do seu projeto atual. Em ambos os casos, você pode explorar os arquivos escritos usando o %sh
comando magic, que permite operações bash simples em relação ao seu diretório raiz atual, como no exemplo a seguir:
%sh ls
Para obter mais informações sobre como o Azure Databricks armazena vários arquivos, consulte Trabalhar com arquivos no Azure Databricks.
Como pode carregar dados com o Pandas no Azure Databricks?
O Azure Databricks fornece várias opções para facilitar o carregamento de dados no espaço de trabalho para exploração. O método preferido para carregar dados com pandas varia dependendo de como você carrega seus dados no espaço de trabalho.
Se você tiver pequenos arquivos de dados armazenados ao lado de blocos de anotações em sua máquina local, você pode carregar seus dados e código junto com pastas Git. Em seguida, você pode usar caminhos relativos para carregar arquivos de dados.
O Azure Databricks fornece extensas opções baseadas na interface do usuário para carregamento de dados. A maioria dessas opções armazena seus dados como tabelas Delta. Você pode ler uma tabela Delta para um Spark DataFrame e, em seguida, convertê-la em um pandas DataFrame.
Se você salvou arquivos de dados usando DBFS ou caminhos relativos, você pode usar DBFS ou caminhos relativos para recarregar esses arquivos de dados. O código a seguir fornece um exemplo:
import pandas as pd
df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/dbfs_test.csv")
Você pode carregar dados diretamente do Azure Data Lake Storage Gen2 usando pandas e uma URL totalmente qualificada. Você precisa fornecer credenciais de nuvem para acessar dados de nuvem. Os pacotes fsspec
Python e adlfs
também devem ser instalados.
df = pd.read_csv(
f"abfss://{container}@{storage_account}.dfs.core.windows.net/{file_path}",
storage_options={
"sas_token": sas_token_value
}
)