pyspark存储mongo
Failed to find data source: com.mongodb.spark.sql. Please find packages:原因是说spark本身不带有连接mongo的jar包,需要下载配置一下
先上一个简单的示例代码:
spark = SparkSession.builder \
.master("local[3]") \
.config('spark.jars.packages', 'org.mongodb.spark:mongo-spark-connector_2.12:3.0.0') \
.config("spark.mongodb.output.uri", "mongodb://user:password@10.0.0.171:27017/db.test") \
.appName('test_pulsar') \
.getOrCreate()
trip_path='path/ref_obj.csv'
df=spark.read.csv(trip_path,header=True, inferSchema=True).limit(20)
df.show()
df.write.format("mongo").mode("append").save()
上面是一个spark写入的简单操作,
配置.config('spark.jars.packages', 'org.mongodb.spark:mongo-spark-connector_2.12:3.0.0')写上以后会自动下载,我的spark版本是3.3.1
如果是spark2.0 可以用org.mongodb.spark:mongo-spark-connector_2.11:2.3.2
如果是spark3.0 可以用org.mongodb.spark:mongo-spark-connector_2.12:3.0.0
然后配置
.config("spark.mongodb.output.uri", "mongodb://user:password@10.0.0.171:27017/db.test")是默认的写出数据库表
当然如果你要读入的话同理再加一个.config("spark.mongodb.input.uri"