2016-07-26 1 views
0

Je suis en train de compter le nombre de cœurs dans chaque exécuteur avec ce code:java.util.NoSuchElementException: spark.executor.cores

sqlContext.sparkContext.getConf.get("spark.executor.cores").toInt 

Cependant, je reçois cette erreur:

spark.executor.cores 
java.util.NoSuchElementException: spark.executor.cores 
    at org.apache.spark.SparkConf$$anonfun$get$1.apply(SparkConf.scala:193) 
    at org.apache.spark.SparkConf$$anonfun$get$1.apply(SparkConf.scala:193) 
    at scala.Option.getOrElse(Option.scala:120) 

Pourquoi cet échec?

+0

Pourriez-vous nous donner un peu plus d'informations? Faites également une recherche pour 'spark.executor.cores' [ici] (http://spark.apache.org/docs/latest/configuration.html). Vous verrez que cette propriété est définie uniquement sous certaines conditions. – Alec

Répondre

0

Cela a fonctionné:

sqlContext.sparkContext.getConf.getInt("spark.executor.cores", -1)

+0

Ce que vous dites "travaillé", voulez-vous dire qu'il est retourné -1? –

+0

Je veux dire qu'il a été compilé. – octavian

+0

Et couru, probablement, puisque votre code original compilé, a juste jeté une erreur d'exécution. Et il retournera -1, car comme dit @Alec, 'spark.executor.cores' n'est pas toujours défini. Vous n'avez rien réglé car vous ne comptez toujours pas les cœurs –