展开和读取 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)