SparkSQL(六):外部数据源

一、总括

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()

备注:基本参数同读取

猜你喜欢

转载自blog.csdn.net/u010886217/article/details/82924599