Compartilhar via


Expandir e ler arquivos Zip compactados

Você pode usar o comando Bash unzip para expandir arquivos ou diretórios de arquivos que foram compactados pelo Zip. Se você baixar ou encontrar um arquivo ou diretório terminando com .zip, expanda os dados antes de tentar continuar.

Observação

O Apache Spark fornece codecs nativos para interagir com arquivos Parquet compactados. Por padrão, os arquivos Parquet gravados pelo Azure Databricks terminam com .snappy.parquet, indicando que usam compactação snappy.

Como descompactar dados

O %sh comando mágico do Azure Databricks permite a execução de código Bash arbitrário, incluindo o comando unzip.

O exemplo a seguir usa um arquivo CSV compactado baixado da Internet. Consulte Baixar dados da Internet.

Observação

Você pode usar os Utilitários do Databricks para mover arquivos para o armazenamento efêmero anexado ao driver antes de expandi-los. Não é possível expandir arquivos zip enquanto eles residem em volumes do Catálogo do Unity. Consulte Referência de utilitários do Databricks (dbutils).

O seguinte código usa curl para baixar e unzip para expandir os dados:

%sh curl https://resources.lendingclub.com/LoanStats3a.csv.zip --output /tmp/LoanStats3a.csv.zip
unzip /tmp/LoanStats3a.csv.zip

Use dbutils para mover o arquivo expandido para um volume do Catálogo do Unity, da seguinte maneira:

dbutils.fs.mv("file:/LoanStats3a.csv", "/Volumes/my_catalog/my_schema/my_volume/LoanStats3a.csv")

Neste exemplo, os dados baixados têm um comentário na primeira linha e um cabeçalho na segunda. Agora que os dados foram expandidos e movidos, use as opções padrão para ler arquivos CSV, como no seguinte exemplo:

df = spark.read.format("csv").option("skipRows", 1).option("header", True).load("/Volumes/my_catalog/my_schema/my_volume/LoanStats3a.csv")
display(df)