Ma découverte de ce langage fut un petit déclic ! On peut dire que Apache Spark a été le précurseur à tout cela bien évidemment. Pour rappel, Scala est un langage de programmation multi-paradigme conçu à l’École polytechnique fédérale de Lausanne, en Suisse. Elle connait actuellement un envol dans le secteur des analyse des données et le Big Data.
Il existe déjà quelques références sur toute l’historique de ce langage, que je vous invite à découvrir sur internet.
Comme tout débutant sur cette techno, Je vais commencer par écrire un petit programme qui affiche « Hello World », un classique.
Apres avoir fini de télécharger et d’installer Scala, ouvrez une ligne de commande et faites
Pour voir si l’installation s’est bien passée, avec les variables environnements bien définis, faites
scala – version
Si vous voyez « Scala code runner… », l’installation s’est bien passée, sinon désinstaller et réessayer.
Maintenant que vous avez Scala, bien installé, vous pouvez commencer à jouer un peu avec quelques lignes de code !
Notepad++ n’a a ce jour pas Scala comme syntaxe prédéfini. Donc, pour pouvoir avoir les avantages liés a un éditeur de code, je vous conseille de télécharger le fichier scala.xml disponible sur le lien suivant.
<Keywordsname="Folders in code1, open"id="7">{ [</Keywords>
<Keywordsname="Folders in code1, middle"id="8"></Keywords>
<Keywordsname="Folders in code1, close"id="9">} ]</Keywords>
<Keywordsname="Folders in code2, open"id="10"></Keywords>
<Keywordsname="Folders in code2, middle"id="11"></Keywords>
<Keywordsname="Folders in code2, close"id="12"></Keywords>
<Keywordsname="Folders in comment, open"id="13"></Keywords>
<Keywordsname="Folders in comment, middle"id="14"></Keywords>
<Keywordsname="Folders in comment, close"id="15"></Keywords>
<Keywordsname="Keywords1"id="16">abstract case catch class def do else extends false final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try true type val var while with yield _</Keywords>
<Keywordsname="Keywords2"id="17">Any AnyRef AnyVal App Application Array Boolean Byte Char Cloneable Console DelayedInit deprecated deprecatedName Double Dynamic Enumeration Equals FallbackArrayBuilding Float Function Function1 Function2 Immutable inline Int language languageFeature Long LowPriorityImplicits MatchError Mutable native noinline None Nothing NotImplementedError NotNull Null Option PartialFunction Predef Product Product1 Product2 Proxy remote Responder ScalaObject ScalaReflectionException Serializable SerialVersionUID Short Some Specializable specialized StringContext Symbol throws transient Tuple1 Tuple2 unchecked UninitializedError UninitializedFieldError Unit volatile</Keywords>
Maintenant vous avez la syntaxe qui est correctement défini.
Sauvegardez le fichier dans un répertoire
N’oubliez pas l’extension » .scala «
Sur ligne de commande, lancez la compilation en exécutant la commande suivante.
scalac HelloWorld.scala
Ensuite, executez le program en lancant
scala –classpath .HelloWorld
Félicitations, vous avez réussi à compiler votre premier programme Scala !
Il vous reste maintenant à commencer à explorer toutes les facettes intéressantes de ce langage, par example son interaction facile avec du code Java. Toutes les classes de java.lang sont importes par défaut. Le fait que Scala offre de reels capacités d’interopérabilité avec Java font qu’il n’y ai pas besoin d’implementer des classes équivalentes dans les bibiliotheques Scala. Nous pouvons simplement importer les packages java correspondants.
[code language="scala"]
import java.util.{Date, Locale}
import java.text.DateFormat
import java.text.DateFormat._
object AffichageDateFrancais {
def main(args: Array[String]) {
val now = new Date
val df = getDateInstance(LONG, Locale.FRANCE)
println(df format now)
}
}
[/code]
Mon expérience passée sur les « Big Data appliances », comme on les appelle dans le jargon, c’est à dire, des ordinateurs conçus spécialement pour l’analyse de grande quantités données, m’a conduit tout naturellement à aller explorer les innombrables avancées dans ce domaine et la lumière fut………Spark !
En effet, j’ai récemment découvert ce framework, qui a de plus en plus le vent en poupe !
Pour moi, le principe le plus important réside dans la compréhension de ce que sont les « Resilient Distributed Datasets ». Par exemple, Hadoop, est résilient aux pannes ou aux défaillances du système, car les données sont écrites sur le disque après chaque opération et Spark offre la même résilience intégrée du fait que les objets de données sont stockés dans ces fameux RDD répartis sur le cluster de données !
Je compte aussi mettre a jour ce blog avec quelques examples d’analyse de données sur SCALA, la célèbre langue de programmation conçu a l’Ecole Polytechnique fédérale de Lausanne et qui le langage natif de Spark !