Sto provando l'integrazione di hadoop mongodb con spark ma non riesco a capire come rendere i vasi accessibili a un notebook IPython.Aggiungi jar a pyspark quando si utilizza il notebook
Ecco quello che sto cercando di fare:
# set up parameters for reading from MongoDB via Hadoop input format
config = {"mongo.input.uri": "mongodb://localhost:27017/db.collection"}
inputFormatClassName = "com.mongodb.hadoop.MongoInputFormat"
# these values worked but others might as well
keyClassName = "org.apache.hadoop.io.Text"
valueClassName = "org.apache.hadoop.io.MapWritable"
# Do some reading from mongo
items = sc.newAPIHadoopRDD(inputFormatClassName, keyClassName, valueClassName, None, None, config)
Questo codice funziona bene quando lo lancio in pyspark utilizzando il seguente comando:
spark-1.4.1/bin/pyspark --jars 'mongo-hadoop-core-1.4.0.jar,mongo-java-driver-3.0.2.jar'
dove mongo-hadoop-core-1.4.0.jar
e mongo-java-driver-2.10.1.jar
consente di utilizzare MongoDB da Giava. Tuttavia, quando faccio questo:
IPYTHON_OPTS="notebook" spark-1.4.1/bin/pyspark --jars 'mongo-hadoop-core-1.4.0.jar,mongo-java-driver-3.0.2.jar'
I vasi non sono più disponibile e ottengo il seguente errore:
java.lang.ClassNotFoundException: com.mongodb.hadoop.MongoInputFormat
Qualcuno sa come fare vasi a disposizione la scintilla nel quaderno IPython? Sono abbastanza sicuro che questo non è specifico per mongo, quindi forse qualcuno è già riuscito ad aggiungere dei jar al classpath mentre usa il notebook?
provare a utilizzare --files. fare riferimento - http://stackoverflow.com/questions/31602128/spark-submit-yarn-cluster-with-jars-does-not-work/31604360#31604360 –