Expandir e ler arquivos compactados Zip

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

Observação

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

Como descompactar dados

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

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

Observação

O senhor pode usar o Databricks utilidades para mover arquivos para o armazenamento efêmero anexado ao driver antes de expandi-los. O senhor não pode expandir arquivos zip enquanto eles residirem em volumes do Unity Catalog. Consulte a referênciaDatabricks utilidades (dbutils).

O código a seguir usa curl para downloads 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 o dbutils para mover o arquivo expandido para um volume do Unity Catalog, como segue:

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

Neste exemplo, os dados downloads possuem 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 leitura de 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)