簡體   English   中英

如何使用 pyspark 從 databricks 集群連接到 mongodb Atlas

[英]how to connect to mongodb Atlas from databricks cluster using pyspark

如何使用 pyspark 從 databricks 集群連接到 mongodb Atlas

這是我在筆記本中的簡單代碼

from pyspark.sql import SparkSession
spark = SparkSession \
    .builder \
    .appName("myApp") \
    .config("spark.mongodb.input.uri", "mongodb+srv://admin:<password>@mongocluster.fxilr.mongodb.net/TestDatabase.Events") \
    .getOrCreate()

df = spark.read.format("mongo").load()
df.printSchema()

但我收到錯誤

IllegalArgumentException:缺少數據庫名稱。 通過“spark.mongodb.input.uri”或“spark.mongodb.input.database”屬性設置

我在做什么錯

我按照這些步驟進行操作,並且能夠連接。

  • 安裝 org.mongodb.spark:mongo-spark-connector_2.12:3.0.2 maven 庫到您的集群,因為我使用的是 scala2.12

  • 轉到集群詳細信息頁面並在 Spark 選項卡下的高級選項中,添加以下兩個配置參數

     spark.mongodb.output.uri connection-string spark.mongodb.input.uri connection-string

注意connection-string應該是這樣的 - (有你適當的用戶、密碼和數據庫名稱)

mongodb+srv://user:password@cluster1.s5tuva0.mongodb.net/my_database?retryWrites=true&w=majority

  • 在您的筆記本中使用以下 python 代碼,它應該將您的樣本集合加載到 dataframe
# Reading from MongoDB
df = spark.read\
.format("com.mongodb.spark.sql.DefaultSource")\
.option("uri", "mongodb+srv://user:password@cluster1.s5tuva0.mongodb.net/database?retryWrites=true&w=majority")\
.option("database", "my_database")\
.option("collection", "my_collection")\
.load()
  • 您可以使用以下內容寫入 mongo db
events_df.write\
    .format('com.mongodb.spark.sql.DefaultSource')\
    .mode("append")\
    .option( "uri", "mongodb+srv://user:password@cluster1.s5tuva0.mongodb.net/my_database.my_collection?retryWrites=true&w=majority") \
    .save()

希望這對你有用。 請讓其他人知道它是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM