2017-06-13 1 views
1

Je suis en train de charger un fichier csv dans Scala à partir d'étincelle. Je vois que nous pouvons faire en utilisant les deux ci-dessous syntaxes différentes:Manière efficace de charger le fichier csv dans spark/scala

sqlContext.read.format("csv").options(option).load(path) 
    sqlContext.read.options(option).csv(path) 

Quelle est la différence entre ces deux et qui donne la meilleure performance? Merci

Répondre

3

Il n'y a pas de différence.

Alors, pourquoi les deux existent-ils?

  • La méthode .format(fmt).load(path) est flexible, API connectables qui permet d'ajouter plusieurs formats sans avoir à recompiler étincelle - vous pouvez enregistrer des alias pour les implémentations de source de données personnalisées et ont Spark les utiliser; « csv » used to be une telle mise en œuvre personnalisée (en dehors des binaires Spark emballés), mais il fait maintenant partie du projet
  • Il existe des méthodes sténographie pour les sources de données « intégrées » (comme csv, parquet, json ...) qui rendent le code un peu plus simple (et vérifiés à la compilation)

Finalement, ils créent tous deux une source de données CSV et l'utilisent pour charger les données.

La ligne de fond, pour tout format pris en charge, vous devez opter pour le "raccourci" méthode, par exemple. csv(path).