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.
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:
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.
%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:
%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:
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.
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
}
)