Pular para o conteúdo principal

O senhor pode usar o Pandas no Databricks?

Databricks Runtime inclui o Pandas como um dos pacotes padrão do Python, permitindo que o senhor crie e aproveite o Pandas DataFrames no Databricks Notebook e no Job.

Em Databricks Runtime 10.4 LTS e acima, Pandas API em Spark fornece Pandas comando familiar em cima de PySpark DataFrames. O senhor também pode converter DataFrames entre Pandas e PySpark.

Apache Spark Inclui a execução otimizada pela Arrow da lógica Python na forma da funçãoPandas APIs , que permite que os usuários apliquem as transformações do Pandas diretamente no PySpark DataFrames. Apache Spark Também é compatível com Pandas UDFs, que usam otimizações Arrow semelhantes para funções de usuário arbitrárias definidas em Python.

Onde o site Pandas armazena os dados em Databricks?

O senhor pode usar o site Pandas para armazenar dados em vários locais diferentes no site Databricks. Sua capacidade de armazenar e carregar dados de alguns locais depende das configurações definidas pelos administradores do site workspace.

nota

A Databricks recomenda armazenar os dados de produção no armazenamento de objetos na nuvem. Consulte Conectar ao Amazon S3.

Se o senhor estiver em um site habilitado para o Unity Catalog workspace, poderá acessar o armazenamento em nuvem com locais externos. Consulte Criar um local externo para conectar o armazenamento em nuvem à Databricks.

Para uma exploração rápida e dados sem informações confidenciais, o senhor pode salvar com segurança o uso de dados em caminhos relativos ou no DBFScomo nos exemplos a seguir:

Python
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")

O senhor pode explorar os arquivos gravados no DBFS com o comando %fs magic, como no exemplo a seguir. Observe que o diretório /dbfs é o caminho raiz para esses comandos.

Bash
%fs ls

Quando você salva em um caminho relativo, a localização do seu arquivo depende de onde você executa seu código. Se o senhor estiver usando um notebook Databricks, o arquivo de dados será salvo no armazenamento de volume anexado ao driver do cluster. Os dados armazenados nesse local são excluídos permanentemente quando o clustering é encerrado. Se estiver usando as pastas Git do Databricks com suporte a arquivos arbitrários ativado, os dados serão salvos na raiz do projeto atual. Em ambos os casos, o senhor pode explorar os arquivos gravados usando o comando mágico %sh, que permite operações simples do bash relativas ao diretório raiz atual, como no exemplo a seguir:

Bash
%sh ls

Para obter mais informações sobre como o site Databricks armazena vários arquivos, consulte Work with files on Databricks.

Como o senhor carrega dados com Pandas em Databricks?

Databricks oferece várias opções para facilitar o upload de dados para o site workspace para exploração. O método preferido para carregar dados com o Pandas varia dependendo de como o senhor carrega os dados no workspace.

Se tiver pequenos arquivos de dados armazenados junto com o Notebook em seu computador local, o senhor pode upload seus dados e códigos junto com as pastasGit. Em seguida, você pode usar caminhos relativos para carregar arquivos de dados.

A Databricks oferece amplas opções baseadas na interface do usuário para o carregamento de dados. A maioria dessas opções armazena seus dados como tabelas Delta. O senhor pode ler uma tabela Delta para uma Spark DataFrame e, em seguida, convertê-la em uma Pandas DataFrame .

Se o senhor tiver salvado arquivos de dados usando DBFS ou caminhos relativos, poderá usar DBFS ou caminhos relativos para recarregar esses arquivos de dados. O código a seguir fornece um exemplo:

Python
import pandas as pd

df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/dbfs_test.csv")

O senhor pode carregar dados diretamente do S3 usando Pandas e um URL totalmente qualificado. Você precisa fornecer credenciais de nuvem para acessar dados na nuvem.

Python
df = pd.read_csv(
f"s3://{bucket_name}/{file_path}",
storage_options={
"key": aws_access_key_id,
"secret": aws_secret_access_key,
"token": aws_session_token
}
)