展开和读取 Zip 压缩文件
可以使用 unzip
Bash 命令来展开 Zip 压缩的文件或目录。 如果下载或遇到以 .zip
结尾的文件或目录,请先展开数据,然后再尝试继续操作。
注意
Apache Spark 提供用于与压缩的 Parquet 文件交互的本机编解码器。 Azure Databricks 写入的大多数 Parquet 文件都以 .snappy.parquet
结尾,表示它们使用 snappy 压缩。
如何解压缩数据
使用 Azure Databricks %sh
magic 命令可以执行任意 Bash 代码,包括 unzip
命令。
以下示例使用从 Internet 下载的 CSV 压缩文件。 请参阅从 Internet 下载数据。
注意
可以使用 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")
在此示例中,下载的数据在第一行带有注释,在第二行带有标题。 展开并移动数据后,使用标准选项读取 CSV 文件,如以下示例所示:
df = spark.read.format("csv").option("skipRows", 1).option("header", True).load("/Volumes/my_catalog/my_schema/my_volume/LoanStats3a.csv")
display(df)