Zip圧縮ファイルを展開して読み取る

unzip Bash コマンドを使用して、Zip 圧縮されたファイルまたはファイルのディレクトリを展開できます。.zipで終わるファイルまたはディレクトリをダウンロードまたは検出した場合は、続行する前にデータを展開してください。

Apache Spark は、圧縮された Parquet ファイルと対話するためのネイティブ コーデックを提供します。 Databricks によって書き込まれるほとんどの Parquet ファイルは.snappy.parquetで終わり、snappy 圧縮を使用していることを示します。

データを解凍する方法

Databricks %sh マジック コマンドを使用すると、 unzip コマンド を含む任意の Bash コードを実行できます。

次の例では、インターネットからダウンロードした圧縮された CSV ファイルを使用します。 インターネットからのデータのダウンロードを参照してください。

Databricks ユーティリティを使用すると、ファイルを拡張する前に、ドライバーに接続された一時ストレージに移動できます。 zip ファイルは、 Unity Catalogボリューム内にある間は展開できません。 Databricks ユーティリティ (dbutils) リファレンスを参照してください。

次のコードでは、 curl を使用してデータをダウンロードし、 unzip してデータを展開します。

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

次のように、dbutils を使用して、展開されたファイルをUnity Catalogボリュームに移動します。

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

この例では、ダウンロードされたデータの最初の行にコメントがあり、2 番目の行にヘッダーがあります。 データが展開および移動されたので、次の例のように、CSV ファイルを読み取るための標準オプションを使用します。

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