J'utilise typesafe ConfigFactory pour charger la configuration dans mon application scala. Je ne veux pas inclure les fichiers de configuration dans mon fichier jar, mais les charger à partir d'un système de fichiers hdfs externe. Cependant, je ne peux pas trouver un moyen simple de charger la configuration de l'objet fsDataInputStream que je reçois de Hadoop:Comment charger typesafe configFactory à partir du fichier sur hdfs?
//get HDFS file
val hadoopConfig: Configuration = sc.hadoopConfiguration
val fs: FileSystem = org.apache.hadoop.fs.FileSystem.get(hadoopConfig)
val file: FSDataInputStream = fs.open(new Path("hdfs://SOME_URL/application.conf"))
//read config from hdfs
val config: Config = ConfigFactory.load(file.readUTF())
Cependant, cela jette un EOFException. Existe-t-il un moyen facile de convertir l'objet FSDataInputStream dans le java.io.File requis? J'ai trouvé Converting from FSDataInputStream to FileInputStream, mais ce serait très lourd pour une tâche aussi simple.
fonctionne très bien! Merci – Malte
Pouvons-nous inclure des fichiers à l'intérieur du fichier de configuration typesafe de hdfs. 'include fichier (" hdfs: //home//XYZ.conf ")' –
Je ne sais pas. Pourquoi ne pas l'essayer? –