tutorial spark instalar español ejemplo como hadoop apache-spark sequencefile pyspark

hadoop - instalar - spark yr



usando pyspark, lee/escribe imágenes 2D en el sistema de archivos hadoop (1)

Quiero poder leer / escribir imágenes en un sistema de archivos hdfs y aprovechar la ubicación hdfs.

Tengo una colección de imágenes donde cada imagen se compone de

  • Matrices 2D de uint16
  • información adicional básica almacenada como un archivo xml.

Quiero crear un archivo sobre el sistema de archivos hdfs, y usar chispa para analizar el archivo. En este momento estoy luchando sobre la mejor manera de almacenar los datos a través del sistema de archivos hdfs para poder aprovechar al máximo la estructura spark + hdfs.

Por lo que entiendo, la mejor manera sería crear un contenedor sequenceFile. Tengo dos preguntas :

  • ¿Está creando un contenedor sequenceFile de la mejor manera?
  • ¿Alguien tiene algún indicador de ejemplos que podría usar para empezar? ¡No debo ser el primero que necesita leer algo diferente a un archivo de texto en hdfs a través de la chispa!

Encontré una solución que funciona: el uso del pyspark 1.2.0 binaryfile hace el trabajo. Se marca como experimental, pero pude leer imágenes tiff con una combinación adecuada de openCV.

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)

Tenga en cuenta la ayuda de 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.