使用二进制文件保存图像文件 - pyspark

时间:2016-02-13 18:27:18

标签: python image-processing apache-spark pyspark

地狱全部,

如何将图像文件(JPG格式)保存到本地系统中。我使用BinaryFiles将图片加载到spark中,将它们转换为Array并处理它们。以下是代码

from PIL import Image
import numpy as np
import math
images = sc.binaryFiles("path/car*") 
imagerdd = images.map(lambda (x,y): (x,(np.asarray(Image.open(StringIO(y)))))

做了一些图像处理,现在键有路径,值有图像阵列

imageOutuint = imagelapRDD.map(lambda (x,y): (x,(y.astype(np.uint8))))
imageOutIMG = imageOutuint.map(lambda (x,y): (x,(Image.fromarray(y))))

如何将图像保存到本地/ HDFS系统,我发现没有与之相关的选项。

1 个答案:

答案 0 :(得分:2)

如果要将数据保存到本地文件系统,只需收集本地迭代器并使用标准工具按记录保存文件记录:

for x, img in imagerdd.toLocalIterator():
    path = ... # Some path .jpg (based on x?)
    img.save(path)

请务必cache imagerdd以避免重新计算。