Dela via


Expandera och läs komprimerade zip-filer

Du kan använda unzip Bash-kommandot för att expandera filer eller kataloger för filer som har komprimerats med Zip. Om du laddar ned eller stöter på en fil eller katalog som slutar med .zipexpanderar du data innan du försöker fortsätta.

Kommentar

Apache Spark tillhandahåller interna codecs för interaktion med komprimerade Parquet-filer. De flesta Parquet-filer som skrivits av Azure Databricks slutar med .snappy.parquet, vilket indikerar att de använder snabb komprimering.

Så här packar du upp data

Azure Databricks %shmagiska kommando möjliggör körning av godtycklig Bash-kod, inklusive unzip kommandot.

I följande exempel används en zippad CSV-fil som hämtats från Internet. Se Ladda ned data från Internet.

Kommentar

Du kan använda Databricks Utilities för att flytta filer till den tillfälliga lagring som är kopplad till drivrutinen innan du expanderar dem. Du kan inte expandera zip-filer när de finns i Unity Catalog-volymer. Se Referens för Databricks Utilities (dbutils).

Följande kod använder curl för att ladda ned och sedan unzip expandera data:

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

Använd dbutils för att flytta den expanderade filen till en Unity Catalog-volym på följande sätt:

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

I det här exemplet har nedladdade data en kommentar på den första raden och en rubrik i den andra. Nu när data har expanderats och flyttats använder du standardalternativ för att läsa CSV-filer, som i följande exempel:

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