Python映像库无法读取HDFS路径

2024-04-20 13:37:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用库(如“TIFFILE”)从PySpark中的HDFS读取一个“.tif”图像,该图像的[m,n,4](行,列,通道)维度为“uint16”,使用以下代码:

import tifffile as tiff\ img = tiff.imread('hdfs://master:9000/image1.tif')

,但我总是得到这样的信息:


FileNotFoundError: [Errno 2] No such file or directory: '/home/user/spark_files/tfos/hdfs:/master:9000/image1.tif'


映像hdfs://master:9000/image1.tif的HDFS路径是正确的,“tiffile”库在使用本地文件系统而不是HDFS时运行良好。 看起来图像库不理解HDFS路径! 考虑到Spark API无法读取此类图像,如何解决此问题


Tags: 代码图像import路径masterashdfspyspark
2条回答

最后,我可以使用hdfsimagecodecs库来解决这个问题:

from pyarrow import hdfs
import imagecodecs

connect = hdfs.connect("master",9000)
img_file = connect.open('/img1.tif', mode='rb')
img_bytes = img_file.read()
numpy_img = imagecodecs.tiff_decode(img_bytes)

你可以用两种方法来解决这个问题

  1. Spark使用文件选项提交作业并传递所需文件,这样它将上载到所有执行者,并可直接访问

  2. 在边缘节点上获取文件,然后触发脚本

相关问题 更多 >