Spark2.4开始支持内置的图片数据源读取器,可以直接读取图片的数据。
val df = spark.read.format("image").load("/opt/pic/")
目录可以还可以是/path/to/dir/**和分区目录。
Image Schema
读取的数据会生成一个DF,该DF就一列列名字叫做 image。但是其实他是个嵌套数据结构,具体结构如下:
root
|-- image: struct (nullable = true)
| |-- origin: string (nullable = true)
| |-- height: integer (nullable = true)
| |-- width: integer (nullable = true)
| |-- nChannels: integer (nullable = true)
| |-- mode: integer (nullable = true)
| |-- data: binary (nullable = true)
orgin:代表图片的路径。
nChannels:颜色通道的数量。对于灰度图像,典型值为1,对于彩色图像(例如,RGB),典型值为3,对于具有alpha通道的彩色图