Spark小Demo,连接mongo,并处理密码或者用户名带特殊符号

 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

小记录,共勉!!!!

猜你喜欢

转载自blog.csdn.net/Alex_81D/article/details/108534641