es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo realizar operaciones comunes con archivos HDFS utilizando fs.HadoopFileSystem?

Necesito realizar algunas operaciones comunes con directorios de HDFS utilizando python3. Tales como mkdir, chmod, chown, test si el directorio existe.

Intento usar pyarrow, ya que es el cliente oficial de Python.

Entonces, revisé la nueva documentación de la API y no encontré ningún método útil.
El uso de la API heredada de HDFS permitía hacerlo, pero está en desuso.

¿Alguien podría decirme cómo realizar las operaciones que mencioné utilizando la nueva API?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según mi investigación, la nueva API pyarrow.fs.HadoopFileSystem no ofrece soporte para operaciones comunes como mkdir, chmod, etc. Estas operaciones se suelen realizar utilizando las llamadas de la API HDFS heredada, las cuales están obsoletas en pyarrow. Sin embargo, existe una forma alternativa de realizar estas operaciones utilizando el módulo subprocess en Python. A continuación se muestra un ejemplo de código para crear un nuevo directorio en HDFS utilizando el módulo subprocess de Python:

    import subprocess
    
    def crear_directorio_hdfs(ruta):
        try:
            # Crear un nuevo directorio en HDFS
            subprocess.check_output(["hdfs", "dfs", "-mkdir", ruta])
            print("Directorio creado exitosamente")
        except subprocess.CalledProcessError as e:
            print("Error al crear el directorio: ", e.output)
    

    De manera similar, para otras operaciones como chmod, chown y test, puedes utilizar las opciones correspondientes de la línea de comandos hdfs dfs con el módulo subprocess. Sin embargo, este enfoque tiene sus limitaciones, como el consumo elevado de recursos de red, poca eficiencia y la necesidad de una configuración adicional para trabajar con un clúster Hadoop seguro.

    Recomendaría utilizar la API HDFS heredada si es posible, ya que proporciona una forma más eficiente, segura y confiable de interactuar con el sistema de archivos de Hadoop utilizando Python.

Comments are closed.