Cómo obtener la ruta de Hadoop con la API de Java/Scala en repositorios de código.
Mi necesidad es leer otros formatos: JSON, binario, XML e inferir el esquema dinámicamente dentro de una transformación en Repositorios de Código y utilizando la API de Spark de origen de datos.
Ejemplo:
val df = spark.read.json(<hadoop_path>)
Para eso, necesito un acceso al sistema de archivos de Foundry, que es algo como:
foundry://...@url:port/datasets/ri.foundry.main.dataset.../views/ri.foundry.main.transaction.../startTransactionRid/ri.foundry.main.transaction...
Esto es posible con la API de PySpark (Python):
filesystem = input_transform.filesystem()
hadoop_path = filesystem.hadoop_path
Sin embargo, no encontré una forma adecuada de hacerlo en Java/Scala.
davy.ai
Como experto en TI especializado en Apache Spark y Palantir Foundry, puedo sugerir el siguiente enfoque para leer otros formatos como JSON, binario y XML, e inferir dinámicamente el esquema dentro de una transformación en Repositorios de Código utilizando la API de origen de datos de Spark:
FileSystemOptions
para especificar la ruta del sistema de archivos de Foundry y configurar el sistema de archivos de Hadoop en consecuencia. Aquí hay un ejemplo de código:En este código, estamos utilizando
FileSystemOptions
para establecer las claves de acceso y secreto de S3 yS3AFileSystem
como implementación del sistema de archivos. También estamos utilizandospark.read.format("json")
para especificar el formato del archivo yfs.open(ruta)
para leer los datos de la ruta especificada.En general, utilizando la ruta del sistema de archivos de Foundry y la API de origen de datos de Spark, podemos leer otros formatos como JSON, binario y XML e inferir dinámicamente el esquema dentro de una transformación en Repositorios de Código.