在从mysql中读取数据(包含字段值问中文)
例如当使用使用select id from test where name =’杨’的时候出现了错误,结果为零
object sparksql {
def main(args: Array[String]) {
val sc = new SparkContext( new SparkConf().setAppName(“sparksql”))
val sqlContext = new SQLContext( sc )
val url="jdbc:mysql://192.168.0.66:3306/test"
val prop = new Properties()
prop.setProperty("user","root")
prop.setProperty("password","1q2w3e4r")
//加入这两个属性 解决问题
prop.setProperty("useUnicode","true")
prop.setProperty("characterEncoding","utf8")
//可以解决从mysql读取数据出现乱码的问题,可以指定字符编码
//val urls= “jdbc:mysql://192.168.0.66:3306/test?useUnicode=true&characterEncoding=utf8”
val rdd=
sqlContext.read.jdbc(url,"test",Array("objectId=1"),prop)
var len = rdd.count() //23
rdd.registerTempTable("lef")
val first = sqlContext.sql(“SELECT id FROM lef WHERE name= ‘ysx’”)
val second = sqlContext.sql(“SELECT id FROM lef WHERE name= ‘杨’”)
sc.stop()
}
}