1、sparkSQL操作需要创建SparkSession,sparkRDD操作需要创建SparkContext。
这里使用sparkSession
val sparkSession:SparkSession = SparkSession.builder()
.appName("JdbcSource")
.master("local[2]")
.getOrCreate()
2、加载数据源
url:连接到具体数据库
driver:mysql驱动
dbtable:urlcount数据库中的表名
user:数据库urlcount用户名
password:密码
import sparkSession.implicits._
val url_data:DataFrame = sparkSession.read.format("jdbc")
.options(Map(
"url" -> "jdbc:mysql://localhost:3306/urlcount",
"driver" -> "com.mysql.jdbc.Driver",
"dbtable" -> "url_data",
"user" -> "root"
"password" -> "root"
))
3、过滤
val r:Dataset[Row] = url_data.filter($"uid" > 2)
val rs:DataFrame = r.select($"xueyuan",$"number_one")
4、显示
rs.show()
5、读取后保存
以txt文件保存,注意r.select($“xueyuan”)这里只能单列
rs.write.text("e:/saveText")
以json格式保存
rs.write.json("e:/saveJson")
以csv格式保存 这是excel
rs.write.csv("e:/saveCsv")
以parquet格式保存
rs.write.parquet("e:/savePar")
6、关闭资源
sparkSession.stop()