Nous utilisons la fonctionnalité SQL de Spark SQL pour joindre et analyser des fichiers de données locaux avant de les télécharger ailleurs. Bien que nous soyons satisfaits de la fonctionnalité, nous aimerions modifier les configurations pour obtenir des performances supplémentaires.Spark SQL configurations optimales pour un processus de noeud unique?
Nous n'avons pas de cluster, mais nous aurons probablement 5 nœuds individuels qui diffusent tous les fichiers depuis S3, en les analysant séparément (ils ne s'appuient sur aucun autre fichier externe) séparément et en les téléchargeant. Malheureusement, nous utilisons l'API Java.
Ce sont les configs que j'expérimente, et n'importe quelle aide serait impressionnante.
(Every RDD is being cached)
spark.sql.inMemoryColumnarStorage.compressed true
spark.sql.inMemoryColumnarStorage.batchSize 20000(doubled)
spark.sql.autoBroadcastJoinThreshold 10485760
spark.sql.shuffle.partitions 10(since its a local process, reducing from 200)
Merci! Cela a vraiment accéléré mon processus d'environ 30 ~ 50%. Y at-il une ressource qui approfondit ce que l'élagage fait? Merci encore! – JeffLL
Vous ne savez pas à propos de la ressource, mais vous pouvez vérifier le code source de Spark spécifiquement après la classe et les autres classes renouvelables: - https://github.com/apache/spark/blob/branch-1.2/sql/core/src/main/scala/ org/apache/spark/sql/colonne/InMemoryColumnarTableScan.scala # L297 – DexterMorgan