Pular para o conteúdo principal

Expandir e ler arquivos compactados em Zip

O senhor pode usar o comando unzip Bash para expandir arquivos ou diretórios de arquivos que foram compactados com Zip. Se o senhor fizer download 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 pela Databricks termina com .snappy.parquet, indicando que eles usam compressão rápida.

Como descompactar dados

O comando mágico %sh da Databricks 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. Ver download de dados da Internet.

nota

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 fazer o download e, em seguida, unzip para expandir os dados:

Bash
%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:

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

Neste exemplo, os dados de downloads 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 exemplo a seguir:

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