Dekomprimieren und Lesen komprimierter ZIP-Dateien
Sie können mit dem Bash-Befehl unzip
Dateien oder Dateiverzeichnisse dekomprimieren, die mit ZIP komprimiert wurden. Wenn Sie eine Datei oder ein Verzeichnis herunterladen oder darauf stoßen, die bzw. das mit .zip
endet, dekomprimieren Sie die Daten, ehe Sie versuchen, fortzufahren.
Hinweis
Apache Spark stellt native Codecs für die Interaktion mit komprimierten Parquet-Dateien bereit. Die meisten von Azure Databricks geschriebenen Parquet-Dateien enden mit .snappy.parquet
, womit die Snappy-Komprimierung angegeben wird.
Dekomprimieren von Daten
Der %sh
Magic-Befehl von Azure Databricks ermöglicht die Ausführung von beliebigem Bash-Code, einschließlich des Befehls unzip
.
Im folgenden Beispiel wird eine komprimierte CSV-Datei verwendet, die aus dem Internet heruntergeladen wurde. Weitere Informationen finden Sie unter Herunterladen von Daten aus dem Internet.
Hinweis
Sie können mit den Databricks-Hilfsprogrammen Dateien vor dem Dekomprimieren in den an den Treiber angefügten kurzlebigen Speicher verschieben. ZIP-Dateien in Unity Catalog-Volumes können nicht dekomprimiert werden. Weitere Informationen finden Sie unter Referenz zu Databricks-Hilfsprogrammen (dbutils).
Im folgenden Code wird curl
zum Herunterladen und dann unzip
zum Dekomprimieren der Daten verwendet:
%sh curl https://resources.lendingclub.com/LoanStats3a.csv.zip --output /tmp/LoanStats3a.csv.zip
unzip /tmp/LoanStats3a.csv.zip
Verwenden Sie dbutils, um die dekomprimierte Datei wie folgt in ein Unity Catalog-Volume zu verschieben:
dbutils.fs.mv("file:/LoanStats3a.csv", "/Volumes/my_catalog/my_schema/my_volume/LoanStats3a.csv")
In diesem Beispiel enthalten die heruntergeladenen Daten einen Kommentar in der ersten Zeile und eine Überschrift in der zweiten Zeile. Nachdem die Daten dekomprimiert und verschoben wurden, verwenden Sie wie im folgenden Beispiel die Standardoptionen zum Lesen von CSV-Dateien:
df = spark.read.format("csv").option("skipRows", 1).option("header", True).load("/Volumes/my_catalog/my_schema/my_volume/LoanStats3a.csv")
display(df)