1、首先创建表student,字段有name、age,然后插入数据,如下图所示:
2、代码如下:
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
object SparkReadMysql {
def main(args:Array[String]):Unit={
//创建一个session,在2.0以后,SparkContext不是必须创建的,而是可以通过如下方式创建
val conf=new SparkConf().setMaster("local").setAppName("SparkReadMysql")
val sparkSession=SparkSession
.builder()
.config(conf)//设置操作hive的url,相当于jdbc里的url
.getOrCreate()
val prop=scala.collection.mutable.Map[String,String]()
prop.put("user","root")
prop.put("password","123456")
prop.put("driver","com.mysql.cj.jdbc.Driver")
prop.put("dbtable","student")
prop.put("url","jdbc:mysql://master:3306/spark_project?characterEncoding=utf8")
//从数据库中加载整个表的数据
val df=sparkSession.read.format("jdbc").options(prop).load()
//读出来之后注册为临时表
df.createOrReplaceTempView("student")
df.show()
//注册好之后就可以通过sql语句查询了
sparkSession.sql("select * from student where age>20").show()
sparkSession.close()
}
}
3、输出结果如下图所示:
来源:CSDN
作者:sxjlinux
链接:https://blog.csdn.net/sunxiaoju/article/details/103793284