Feb.13

Sc.textFile ou sc.wholeTextFiles [Spark]

Lors d’un projet sur le traitement de textes, vous avez le choix entre distribuer les lignes de vos fichiers ou distribuer les contenus entiers de ces derniers. L’article présente l’intérêt de chacun et la manière de le faire.

Distribuer les lignes d’un fichier

Pour distribuer les lignes d’un fichier, il faut créer un RDD[String] avec la méthode textFile() de votre instance SparkContext(). Cette méthode prend en paramètre le chemin vers le fichier en question (en local, hdfs, …). Le retour de cette méthode est un RDD[String] où chaque String correspond à une ligne de votre fichier.  Ainsi, vous distribuez votre analyse sur les lignes du fichiers.

val sc = new SparkContext(conf)
val mesLignes: RDD[String] = sc.textFile("cheminVersMonFichier")
mesLignes.map(maLigne => {
  // Traitements
})

Distribuer les fichiers d’un dossier

Si vos fichiers contiennent peu de lignes mais la complexité est situé au niveau du nombre de ces fichiers, il existe la méthode wholeTextFiles() de votre instance SparkContext(). Cette méthode prend en paramètre le chemin vers votre dossier conteneur. Le retour de cette méthode est un RDD[(String, String)]. Chaque ligne du RDD est un Tuple2. Le premier élément du Tuple2 est le chemin vers le fichier, le second son contenu. Ainsi, vous distribuez les fichiers et leur contenu en entier.

val sc = new SparkContext(conf)
val mesFichiers: RDD[(String, String)] = sc.wholeTextFiles("cheminVersMonDossierConteneur")
mesFichiers.map(unFichier => {
  println("Chemin : " + unFichier._1)
  println("Contenu : " + unFichier._2)
  // Traitements
})

A vous de décider si le meilleur moyen est de distribuer les contenus entiers des fichiers ou de boucler sur les fichiers et de distribuer les lignes de ces derniers.

Bigdata

Feb.10

Créer un .JAR avec Intellij Idea

Pour créer un fichier JAR à partir d’un programme (scala, java, ce que vous voulez) développé sur Intellij Idea 15, la procédure est la suivante :

Créer un Artifact

Pour créer un Artifact, allez dans File –> Project Structure (le racourci pour ça est CTRL + ALT + MAJ + S) puis allez dans la section Artifacts.

artifacts-1

Cliquez sur le « + » vert. Dans l’arborescence proposé, allez dans JAR –> From modules with dependencies.

Dans la fenêtre qui vient de s’ouvrir, cherchez votre classe d’entrée du projet (le main donc), ajoutez votre module et sélectionnez « copy to the output directory and link via manifest« . Puis validez.

Construire le JAR

Ensuite, dans le menu (File, Edit, View, etc.), allez dans Run -> Build Artifacts… Notez qu’avant d’avoir créer votre Artifact, cette option était grisée.

Dans le petit menu déroulant qui s’affiche en plein milieu de votre page, choisissez « Build » et le tour est joué.

A noter que le jar se trouve dans le dossier suivant :

IdeaProject –> Votre-Projet –> out –> artifacts –> Votre-Projet_jar –>Votre-Proket.jar

Bigdata