Cách hiệu quả để ghi vào mongodb từ pyspark là sử dụng MongoDB Đầu nối tia lửa . Connector sẽ chuyển đổi dữ liệu sang định dạng BSON và lưu vào mongodb. Giả sử bạn có khung dữ liệu spark có tên là df mà bạn muốn lưu trong mongodb. Bạn có thể thử:
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()
Nếu bạn đang sử dụng sổ ghi chép, hãy viết phần này ở trên cùng-
%%configure
{"conf": {"spark.jars.packages": "org.mongodb.spark:mongo-spark-connector_2.11:2.3.2"}}
Nếu bạn đang sử dụng lệnh 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