一、总括
1.参考官网:
http://spark.apache.org/docs/2.1.0/sql-programming-guide.html#data-sources
2.SparkSQL支持多种数据源,这个部分主要讲了使用Spark加载和保存数据源。然后,讲解内置数据源的特定选项。
3.数据源分类:
(1)parquet数据
(2)hive表
(3)jdbc连接其他数据库(以MySQL的数据库为例)
二、parquet数据
1.读取数据:直接转换为DataFrame
val userDF=spark.read.format("parquet").load("file:///opt/modules/spark-2.1.0-bin-2.7.3/examples/src/main/resources/users.parquet")
备注:如果不设定format,默认是parquet
spark.read.load("datas/users.parquet").show()
2.保存数据:
userDF.select("name","favorite_color").write.format("json").save("file:///opt/datas/jsonout")
三、操作hive表
1.读取
spark.sql("select deptno, count(1) as mount from imooc.emp where group by deptno").filter("deptno is not null").write.saveAsTable("imooc.hive_table_1")
2.创建临时表
recordsDF.createOrReplaceTempView("records")
四、jdbc连接其他数据库(操作MySQL)
1.读取
spark.read.format("jdbc").option("url", "jdbc:mysql://bigdata.ibeifeng.com:3306/metastore").option("dbtable", "metastore.TBLS").option("user", "root").option("password", "123456").option("driver", "com.mysql.jdbc.Driver").load().show()
备注option解释:
- url:数据库的url,可参考hive-site.xml中获得
- dbtable:数据表
- driver:驱动,取com.mysql.jdbc.Driver
2.写入
jdbcDF.write
.format("jdbc")
.option("url", "jdbc:postgresql:dbserver")
.option("dbtable", "schema.tablename")
.option("user", "username")
.option("password", "password")
.save()
备注:基本参数同读取