Udostępnij za pośrednictwem


Rozwijanie i odczytywanie skompresowanych plików zip

Możesz użyć unzip polecenia Bash, aby rozwinąć pliki lub katalogi plików, które zostały skompresowane zip. Jeśli pobierzesz lub napotkasz plik lub katalog kończący się ciągiem , rozwiń dane przed podjęciem .zippróby kontynuowania.

Uwaga

Platforma Apache Spark udostępnia koderów natywnych do interakcji z skompresowanymi plikami Parquet. Większość plików Parquet napisanych przez usługę .snappy.parquetAzure Databricks kończy się na , co wskazuje, że używają kompresji snappy.

Jak rozpakować dane

Polecenie magic usługi Azure Databricks %shumożliwia wykonywanie dowolnego kodu powłoki Bash, w tym unzip polecenia.

W poniższym przykładzie użyto spakowanego pliku CSV pobranego z Internetu. Zobacz Pobieranie danych z Internetu.

Uwaga

Możesz użyć narzędzi usługi Databricks, aby przenieść pliki do magazynu efemerycznego dołączonego do sterownika przed ich rozszerzeniem. Nie można rozwinąć plików zip, gdy znajdują się w woluminach wykazu aparatu Unity. Zobacz Dokumentacja narzędzi usługi Databricks (dbutils).

Poniższy kod używa curl metody do pobrania, a następnie unzip do rozwinięcia danych:

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

Użyj narzędzia dbutils, aby przenieść rozszerzony plik do woluminu wykazu aparatu Unity w następujący sposób:

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

W tym przykładzie pobrane dane mają komentarz w pierwszym wierszu i nagłówek w drugim. Po rozwinięciu i przeniesieniu danych użyj standardowych opcji odczytywania plików CSV, jak w poniższym przykładzie:

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