Un moyen efficace d'écrire dans mongodb à partir de pyspark consiste à utiliser MongoDB Connecteur d'étincelle . Le connecteur convertira les données au format BSON et les enregistrera dans mongodb. Supposons que vous ayez une trame de données Spark nommée df que vous souhaitez enregistrer dans mongodb. Vous pouvez essayer :
from pyspark.sql import SparkSession, SQLContext
from pyspark import SparkConf, SparkContext
sc = SparkContext()
spark = SparkSession(sc)
df.write.format("com.mongodb.spark.sql.DefaultSource").mode("append").option("spark.mongodb.output.uri","mongodb://username:[email protected]_details:27017/db_name.collection_name?authSource=admin").save()
Si vous utilisez un ordinateur portable, écrivez ceci en haut-
%%configure
{"conf": {"spark.jars.packages": "org.mongodb.spark:mongo-spark-connector_2.11:2.3.2"}}
Si vous utilisez la commande spark-submit :
spark-submit --conf spark.pyspark.python=/usr/bin/anaconda/envs/py35/bin/python3.5 --packages org.mongodb.spark:mongo-spark-connector_2.11:2.3.1 file_name.py