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

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

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

データを 解凍する方法

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

次の例では、インターネットからダウンロードした圧縮された CSV ファイルを使用します。 Databricks ユーティリティを使用して、展開する前にファイルをドライバー ボリュームに移動することもできます。 「インターネットからデータをダウンロードする」および「Databricks ユーティリティ (dbutils) リファレンス」を参照してください。

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

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

dbutils を使用して、展開されたファイルをクラウド・オブジェクト・ストレージに戻し、次のように並列読み取りを可能にします。

dbutils.fs.mv("file:/LoanStats3a.csv", "dbfs:/tmp/LoanStats3a.csv")

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

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