【问题标题】:Saving an Image file using binary Files - pyspark使用二进制文件保存图像文件 - pyspark
【发布时间】:2019-12-06 14:43:22
【问题描述】:

如何将图像文件(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 系统,我看到没有与之相关的选项。

【问题讨论】:

    标签: python image-processing apache-spark pyspark


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢 zero323 的解决方案,如果我在 HDFS 上运行应该怎么办?
    • 您可以例如分析hibToJpeg 是如何处理这个问题的。但如果你问的是纯 PySpark,我不知道。
    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多