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)