gpt4 book ai didi

hadoop - 使用 pyspark,在 h​​adoop 文件系统上读/写 2D 图像

转载 作者:可可西里 更新时间:2023-11-01 14:14:58 25 4
gpt4 key购买 nike

我希望能够在 hdfs 文件系统上读取/写入图像并利用 hdfs 局部性。

我有一个图像集合,其中每个图像由

  • uint16 的二维数组
  • 存储为 xml 文件的基本附加信息。

我想在 hdfs 文件系统上创建一个存档,并使用 spark 来分析存档。现在我正在努力寻找通过 hdfs 文件系统存储数据的最佳方式,以便能够充分利用 spark+hdfs 结构。

据我所知,最好的方法是创建一个 sequenceFile 包装器。我有两个问题:

  • 创建 sequenceFile 包装器是最好的方法吗?
  • 有没有人提供我可以用来开始的例子?我一定不是第一个需要通过 spark 读取与 hdfs 上的文本文件不同的内容的人!

最佳答案

我找到了一个有效的解决方案:使用 pyspark 1.2.0 二进制文件可以完成这项工作。它被标记为实验性的,但我能够通过适当的 openCV 组合读取 tiff 图像。

import cv2
import numpy as np

# build rdd and take one element for testing purpose
L = sc.binaryFiles('hdfs://localhost:9000/*.tif').take(1)

# convert to bytearray and then to np array
file_bytes = np.asarray(bytearray(L[0][1]), dtype=np.uint8)

# use opencv to decode the np bytes array
R = cv2.imdecode(file_bytes,1)

注意pyspark的帮助:

binaryFiles(path, minPartitions=None)

:: Experimental

Read a directory of binary files from HDFS, a local file system (available on all nodes), or any Hadoop-supported file system URI as a byte array. Each file is read as a single record and returned in a key-value pair, where the key is the path of each file, the value is the content of each file.

Note: Small files are preferred, large file is also allowable, but may cause bad performance.

关于hadoop - 使用 pyspark,在 h​​adoop 文件系统上读/写 2D 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28731140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com