HDFS 从带有标签的嵌套目录启动数据框架

vlf7wbxs  于 2022-12-09  发布在  HDFS
关注(0)|答案(1)|浏览(200)

我尝试从HDFS中读取8GB的映像,其嵌套目录结构如下:

train_set
   |___dir_0
   |   |___0.jpg
   |   |___1.jpg
   |___dir_2
   |   |___0.jpg
   |   |___1.jpg

我正在使用ScalaSpark,我已经尝试了所有的doc解决方案,但我无法摆脱这个。我希望有一个Dataframe,其中列“image”和“label”,其中label是图像的父目录的名称(或索引)。非常感谢您的时间。

vsdwdz23

vsdwdz231#

当你把图像作为 Dataframe 读取时,你会得到一个结构列,叫做image,image的一个子列是origin,它标记了父目录。

spark.read.format("image").load("train_set/dir_0/*.jpg", "train_set/dir_2/*.png")
  .selectExpr("image", "image.origin as label").show

如果您使用的spark版本〉= 3.0.0,那么您可以使用some options,而不是将多个文件路径作为参数传递给load()方法。

相关问题