web-dev-qa-db-fra.com

Comment définir les valeurs de configuration hadoop de pyspark

La version Scala de SparkContext a la propriété

sc.hadoopConfiguration

J'ai utilisé cela avec succès pour définir les propriétés Hadoop (dans Scala)

par exemple.

sc.hadoopConfiguration.set("my.mapreduce.setting","someVal")

Cependant, la version python de SparkContext n'a pas cet accesseur. Existe-t-il un moyen de définir les valeurs de configuration Hadoop dans la configuration Hadoop utilisée par le contexte PySpark?

31
javadba
sc._jsc.hadoopConfiguration().set('my.mapreduce.setting', 'someVal')

devrait marcher

55
Dmytro Popovych

J'ai regardé le code source de PySpark ( context.py ) et il n'y a pas d'équivalent direct. Au lieu de cela, certaines méthodes spécifiques prennent en charge l'envoi d'une carte de paires (clé, valeur):

fileLines = sc.newAPIHadoopFile('dev/*', 
'org.Apache.hadoop.mapreduce.lib.input.TextInputFormat',
'org.Apache.hadoop.io.LongWritable',
'org.Apache.hadoop.io.Text',
conf={'mapreduce.input.fileinputformat.input.dir.recursive':'true'}
).count()
3
javadba

Vous pouvez définir toutes les propriétés Hadoop à l'aide de --conf paramètre lors de la soumission du travail.

--conf "spark.hadoop.fs.mapr.trace=debug"

Source: https://github.com/Apache/spark/blob/branch-1.6/core/src/main/scala/org/Apache/spark/deploy/SparkHadoopUtil.scala#L105

2
Harikrishnan Ck