标签: image machine-learning apache-spark distributed-computing
目前,我正在使用Spark对图像分类进行编程。我需要将所有图像作为RDD读入内存,我的方法如下:
val images = spark.wholeTextFiles("hdfs://imag-dir/")
imag-dir 是hdfs上的目标图像存储目录。使用此方法,所有图像将被加载到内存中,并且每个图像将被组织为“图像名称,图像内容”对。但是,我发现这个过程非常耗时,有没有更好的方法将大图像数据集加载到spark?
答案 0 :(得分:4)
我怀疑这可能是因为你在HDFS上有很多小文件,这是一个问题(“小文件问题”)。 Here你会在解决这个问题时找到一些建议。
您可能还希望将分区数(minpartitions的{{1}}参数)设置为合理的数量:至少是群集中核心数量的2倍(查看there详情)。
minpartitions
但总而言之,除了上面的两个想法之外,你加载它们的方式还可以,不你的问题所在(假设wholetextFiles是你的Spark上下文)。< / p>
wholetextFiles