sprak小demo,用spark连接mongodb,并且处理密码或者用户名带特殊符号的方法
import java.net.URLEncoder
import com.mongodb.spark.MongoSpark
import com.mongodb.spark.config.ReadConfig
import org.apache.spark.sql.SparkSession
import org.junit.Test
class FlowTest2 {
@Test
def testFlow(): Unit ={
//对用户密码的特殊字符进行url编码
var mongoUser:String = URLEncoder.encode("sun","utf-8")
var mongoPwd: String = URLEncoder.encode("123@123","utf-8")
var ipport : String = "127.0.0.1:27017"
var dataBase : String = "admin"
//mongodb://testAdmin:[email protected]:27017/admin
var mongoUrl = s"mongodb://${mongoUser}:${mongoPwd}@$ipport/$dataBase"
val spark = SparkSession.builder()
.master("local")
.appName("readTest")
.config("spark.driver.memory", "2g")
.config("spark.executor.memory", "2g")
.config("spark.cores.max", "2")
.config("spark.debug.maxToStringFields", "10000")
//.config("spark.mongodb.input.uri", mongoUrl)
.getOrCreate()
val connectionString = Option(mongoUrl)
val readConfig = ReadConfig(dataBase,"mdm",connectionString)
val df = MongoSpark.load(spark,readConfig)
df.createOrReplaceTempView("temp")
spark.close();
}
}
mongo创建用户的语法
db.createUser({user:"testAdmin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
db.createUser({user:"test1",pwd:"123@123",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
https://www.jianshu.com/p/bbdd95f41e9f
小记录,共勉!!!!