地狱全部,
如何将图像文件(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系统,我发现没有与之相关的选项。
答案 0 :(得分:2)
如果要将数据保存到本地文件系统,只需收集本地迭代器并使用标准工具按记录保存文件记录:
for x, img in imagerdd.toLocalIterator():
path = ... # Some path .jpg (based on x?)
img.save(path)
请务必cache
imagerdd
以避免重新计算。