Spark-SQL读取mysql数据

隐身守侯 提交于 2020-01-01 17:21:56

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、输出结果如下图所示:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!