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)