Espandere e leggere file compressi ZIP

È possibile usare il unzip comando Bash per espandere file o directory di file compressi. Se si scarica o si verifica un file o una directory che termina con .zip, espandere i dati prima di provare a continuare.

Nota

Apache Spark offre codec nativi per interagire con file Parquet compressi. La maggior parte dei file Parquet scritti da Azure Databricks termina con .snappy.parquet, a indicare che usano la compressione snappy.

Come decomprimere i dati

Il comando magic di Azure Databricks %sh consente l'esecuzione di codice Bash arbitrario, incluso il unzip comando .

L'esempio seguente usa un file CSV compresso scaricato da Internet. Vedere Scaricare i dati da Internet.

Nota

È possibile usare le utilità di Databricks per spostare i file nell'archivio temporaneo collegato al driver prima di espanderli. Non è possibile espandere i file ZIP mentre risiedono nei volumi del catalogo Unity. Vedere Informazioni di riferimento sulle utilità di Databricks (dbutils).

Il codice seguente usa curl per scaricare e quindi unzip espandere i dati:

%sh curl https://resources.lendingclub.com/LoanStats3a.csv.zip --output /tmp/LoanStats3a.csv.zip
unzip /tmp/LoanStats3a.csv.zip

Usare dbutils per spostare il file espanso in un volume del catalogo Unity, come indicato di seguito:

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

In questo esempio, i dati scaricati hanno un commento nella prima riga e un'intestazione nel secondo. Ora che i dati sono stati espansi e spostati, usare le opzioni standard per la lettura di file CSV, come nell'esempio seguente:

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