二进制文件数据源
自 Spark 3.0 起,Spark 支持二进制文件数据源,该数据源读取二进制文件并将每个文件转换为包含文件原始内容和元数据的单个记录。它会生成一个包含以下列(以及可能的分区列)的 DataFrame
path
:StringTypemodificationTime
:TimestampTypelength
:LongTypecontent
:BinaryType
要读取整个二进制文件,你需要将数据源的 format
指定为 binaryFile
。为了加载与给定 glob 模式匹配的文件,同时保持分区发现的行为,你可以使用通用的数据源选项 pathGlobFilter
。例如,以下代码从输入目录读取所有 PNG 文件
spark.read.format("binaryFile").option("pathGlobFilter", "*.png").load("/path/to/data")
spark.read.format("binaryFile").option("pathGlobFilter", "*.png").load("/path/to/data")
spark.read().format("binaryFile").option("pathGlobFilter", "*.png").load("/path/to/data");
read.df("/path/to/data", source = "binaryFile", pathGlobFilter = "*.png")
二进制文件数据源不支持将 DataFrame 写回原始文件。