Você pode usar pandas no Databricks?

Databricks Runtime inclui pandas como um dos pacotes Python padrão, permitindo que você crie e aproveite DataFrames pandas em Databricks Notebook and Job.

No Databricks Runtime 10.0e acima, a API Pandas no Spark fornece comandos pandas familiares sobre PySpark DataFrames. Você também pode converter DataFrames entre pandas e PySpark.

O Apache Spark inclui a execução otimizada para seta 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 oferece suporte a 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 Databricks?

Você pode usar pandas para armazenar dados em vários locais diferentes no Databricks. Sua capacidade de armazenar e carregar dados de alguns locais depende das configurações definidas pelos administradores workspace .

Observação

A Databricks recomenda armazenar dados de produção em armazenamento de objetos clouds . Consulte Conectar-se ao Google Cloud Storage.

Para exploração rápida e dados sem informações confidenciais, você pode salvar com segurança o uso de dados em caminhos relativos ou no 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 comando mágico %fs , como no exemplo a seguir. Observe que o diretório /dbfs é o caminho raiz para esses comandos.

%fs ls

Quando o usuário salva em um caminho relativo, o local do arquivo depende de onde o código é executado. Se o senhor estiver usando um Databricks Notebook, 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 cluster é encerrado. Se estiver usando as pastas Git do Databricks com suporte a arquivos arbitrários ativado, seus 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:

%sh ls

Para obter mais informações sobre como o Databricks armazena vários arquivos, consulte Trabalhar com arquivos no Databricks.

Como você carrega dados com pandas no Databricks?

Databricks fornece várias opções para facilitar upload de dados para o workspace para exploração. O método preferido para carregar dados com pandas varia dependendo de como você carrega seus dados no workspace.

Se o senhor tiver pequenos arquivos de dados armazenados junto com o Notebook em seu computador local, poderá fazer upload dos dados e do código junto com as pastas do Git. O senhor pode então usar caminhos relativos para carregar arquivos de dados.

Databricks fornece extensas opções baseadas em 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 em um Spark DataFrame e, em seguida , convertê-la em um pandas DataFrame.

Se você salvou arquivos de dados usando DBFS ou caminhos relativos, 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")

A Databricks recomenda armazenar dados de produção em armazenamento de objetos clouds . Consulte Conectar-se ao Amazon S3.

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

Você pode carregar dados diretamente do S3 usando pandas e um URL totalmente qualificado. Você precisa fornecer credenciais cloud para acessar dados cloud .

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
  }
)