Share via


Expandir e ler ficheiros comprimidos Zip

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

Nota

O Apache Spark fornece codecs nativos para interagir com arquivos Parquet compactados. A maioria dos arquivos Parquet gravados pelo Azure Databricks termina com .snappy.parquet, indicando que eles usam compactação rápida.

Como descompactar dados

O comando magic do Azure Databricks %shpermite a execução de código Bash arbitrário, incluindo o unzip comando.

O exemplo a seguir usa um arquivo CSV compactado baixado da Internet. Consulte Download de dados da internet.

Nota

Você pode usar os utilitários 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 Unity. Consulte Referência de utilitários Databricks (dbutils).

O código a seguir usa curl para baixar e, em seguida, 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 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 opções padrão para ler arquivos CSV, como no exemplo a seguir:

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