我正在嘗試將配置添加到活動的火花會話中。下面是我的代碼
val spark = SparkSession.getActiveSession.get
spark.conf.set("spark.mongodb.input.uri",
"mongodb://hello_admin:hello123@localhost:27017/testdb.products?authSource=admin")
spark.conf.set("spark.mongodb.input.partitioner" ,"MongoPaginateBySizePartitioner")
import com.mongodb.spark._
val customRdd = MongoSpark.load(sc)
println(customRdd.count())
println(customRdd.first.toJson)
println(customRdd.collect().foreach(println))
但我收到一個錯誤:
java.lang.IllegalArgumentException:缺少資料庫名稱。通過 'spark.mongodb.input.uri' 或 'spark.mongodb.input.database' 屬性設定
當我寫代碼時
val spark = SparkSession.builder()
.master("local")
.appName("MongoSparkConnectorIntro")
.config("spark.mongodb.input.uri", "mongodb://hello_admin:hello123@localhost:27017/testdb.products?authSource=admin")
// .config("spark.mongodb.output.uri", "mongodb://hello_admin:hello123@localhost:27017/testdb.products?authSource=admin")
.config("spark.mongodb.input.partitioner" ,"MongoPaginateBySizePartitioner")
.getOrCreate()
val sc = spark.sparkContext
val customRdd = MongoSpark.load(sc)
println(customRdd.count())
println(customRdd.first.toJson)
println(customRdd.collect().foreach(println))
我的代碼運行良好。
請讓我知道我需要在第一個代碼中進行哪些更改
uj5u.com熱心網友回復:
您可以使用 SparkConf 像這樣定義 sparkSession。(我不知道這是否對你有幫助)
def sparkSession(conf: SparkConf): SparkSession = SparkSession
.builder()
.config(conf)
.getOrCreate()
val sparkConf = new SparkConf()
sparkConf.set("prop","value")
val ss = sparkSession(sparkConf)
或者你可以嘗試使用 SparkEnv (我使用 sparkEnv 來做很多事情來改變道具):
SparkEnv.get.conf.set("prop", "value")
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/516998.html
上一篇:如何將我的內容放置在側邊欄旁邊?
