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

unzip Bash コマンドを使用して、Zip 圧縮ファイルやファイルのディレクトリを展開することができます。 末尾が .zip のファイルやディレクトリをダウンロードしたりそれらに遭遇したりした場合は、データを展開してから続行してください。

注意

Apache Spark には、圧縮された Parquet ファイルを操作するためのネイティブ コードが用意されています。 Azure Databricks によって書き込まれたほとんどの Parquet ファイルは末尾が .snappy.parquet で、これは Snappy 圧縮が使用されていることを意味します。

データを解凍する方法

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

以下の例では、インターネットからダウンロードした zip 形式の CSV ファイルを使用しています。 「インターネットからデータをダウンロードする」を参照してください。

Note

Databricks Utilities を使用すると、ファイルを展開する前に、ドライバーにアタッチされているエフェメラル ストレージに移動できます。 Zip ファイルは、Unity カタログ ボリューム内に存在する間は展開できません。 「Databricks Utilities (dbutils) リファレンス」を参照してください。

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

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

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

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

この例では、ダウンロードしたデータの 1 行目にコメントがあり、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)