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 .zip
expanderar 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 %sh
magiska 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)