Spark如何有效地读取100K图像?

时间:2015-01-15 08:59:57

标签: image machine-learning apache-spark distributed-computing

目前,我正在使用Spark对图像分类进行编程。我需要将所有图像作为RDD读入内存,我的方法如下:

val images = spark.wholeTextFiles("hdfs://imag-dir/")  

imag-dir 是hdfs上的目标图像存储目录。使用此方法,所有图像将被加载到内存中,并且每个图像将被组织为“图像名称,图像内容”对。但是,我发现这个过程非常耗时,有没有更好的方法将大图像数据集加载到spark?

1 个答案:

答案 0 :(得分:4)

我怀疑这可能是因为你在HDFS上有很多文件,这是一个问题(“小文件问题”)。 Here你会在解决这个问题时找到一些建议。

您可能还希望将分区数(minpartitions的{​​{1}}参数)设置为合理的数量:至少是群集中核心数量的2倍(查看there详情)。

但总而言之,除了上面的两个想法之外,你加载它们的方式还可以,你的问题所在(假设wholetextFiles是你的Spark上下文)。< / p>