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. Por default, os arquivos Parquet gravados por Databricks terminam com .snappy.parquet, indicando que eles usam compactaçã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 downloads de arquivo CSV compactado da Internet. Você também pode usar o Databricks russos para mover arquivos para o volume do driver antes de expandi-los. Veja downloads de dados da internet e referência do Databricks russas (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 dbutils para mover o arquivo expandido de volta para o armazenamento de objeto cloud para permitir a leitura paralela, como no seguinte:

dbutils.fs.mv("file:/LoanStats3a.csv", "dbfs:/tmp/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("/tmp/LoanStats3a.csv")
display(df)