Zip圧縮ファイルの展開と読み取り
unzip
Bash コマンドを使用して、Zip 圧縮されたファイルまたはファイルのディレクトリを展開できます。ダウンロードした場合、または末尾が .zip
のファイルまたはディレクトリに遭遇した場合は、続行する前にデータを展開してください。
Apache Spark には、圧縮された Parquet ファイルを操作するためのネイティブ コーデックが用意されています。 Databricks によって記述されたほとんどの Parquet ファイルは、スナッピー圧縮を使用していることを示す .snappy.parquet
で終わります。
データを解凍する方法
Databricks %sh
magic コマンド を使用すると、 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")
この例では、ダウンロードされたデータの 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)