展开和读取 Zip 压缩文件

可以使用 unzip Bash 命令来展开 Zip 压缩的文件或目录。 如果下载或遇到以 .zip 结尾的文件或目录,请先展开数据,然后再尝试继续操作。

注意

Apache Spark 提供用于与压缩的 Parquet 文件交互的本机编解码器。 默认情况下,Azure Databricks 写入的 Parquet 文件以 .snappy.parquet 结尾,指示它们使用 snappy 压缩。

如何解压缩数据

使用 Azure Databricks %shmagic 命令可以执行任意 Bash 代码,包括 unzip 命令。

以下示例使用从 Internet 下载的 CSV 压缩文件。 还可以使用 Databricks 实用工具将文件移到驱动程序卷,然后展开文件。 请参阅从 Internet 下载数据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")

在此示例中,下载的数据在第一行带有注释,在第二行带有标题。 展开并移动数据后,使用标准选项读取 CSV 文件,如以下示例所示:

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