美文网首页
Spark实例-操作关系型数据库数据

Spark实例-操作关系型数据库数据

作者: 不圆的石头 | 来源:发表于2017-05-09 11:05 被阅读0次

Spark操作关系型数据库数据,此处为MYSQL数据库。

package com.spark.sql
import org.apache.spark.sql.SQLContext
import org.apache.spark.sql.Row
import org.apache.spark.sql.types._
import org.apache.spark.{SparkConf, SparkContext}

/**
  * Created by Administrator on 2017/3/12.
  */
object JDBCDataSrc extends  App{
  val conf = new SparkConf()
    .setMaster("local")
    .setAppName("JDBCDataSrc")
  val sc = new SparkContext(conf)
  val sqlContext=new SQLContext(sc)
  import sqlContext.implicits._
  val url="jdbc:mysql://localhost:3306/sparkpro"
  val userName="root"
  val password="root"
  //创建Dataframe
  val studenInfoDF=sqlContext.read.format("jdbc").options(Map(
    "url"->url,
    "dbtable"->"student_info",
    "user"->userName,
    "password"->password
  )).load()
  studenInfoDF.show()

  //创建Dataframe
  val studentScoreDF=sqlContext.read.format("jdbc").options(Map(
    "url"->url,
    "dbtable"->"student_score",
    "user"->userName,
    "password"->password
  )).load()
  //studentScoreDF 转换为RDD,并过滤出分数大于80分的学生
  val goodStudentRDD=studentScoreDF.rdd.filter(row=>(row.getAs[Int]("score")>=80))
 // for (elem <- goodStudentRDD.collect()) {
 //   print(elem)
 // }

  //a RDD for studenfInfo
  val studenInfoRDD=studenInfoDF.rdd.map(row=>(row.getAs[String]("name"),row.getAs[Int]("age")))
    .join(goodStudentRDD.map(row=>(row.getAs[String]("name"),row.getAs[Int]("score"))))
  val studenInfoRowRDD=studenInfoRDD.map(row=>Row(row._1,row._2._1.toString.toLong,row._2._2.toString.toLong))
  //studenInfoRDD.foreach(println)
  //将RDD转化为DataFrame
   val studentStruct=StructType(Array(
    StructField("name",StringType,true),
    StructField("age",LongType,true),
    StructField("score",LongType,true)
  ))
  val studentStructDF=sqlContext.createDataFrame(studenInfoRowRDD,studentStruct)
  studentStructDF.write.saveAsTable("good_student")
  //将数据插入到数据库中
}

相关文章

  • Spark实例-操作关系型数据库数据

    Spark操作关系型数据库数据,此处为MYSQL数据库。

  • SparkSQL编程实战

    Spark SQL DataFrame 的创建以及基本操作 DataFrame可以理解成关系型数据库中的表,它与 ...

  • Spark-SQL之DataFrame操作大全

    原文链接Spark SQL中的DataFrame类似于一张关系型数据表。在关系型数据库中对单表或进行的查询操作,在...

  • Spark实例-操作Hive数据

    Spark操作Hive数据库,实现数据表创建,数据加载,以及数据查询。实例代码如下:

  • MongoDB

    关系型数据库和非关系型数据库表就是关系或者说表与表之间存在关系 所有的关系型数据库都需要通过 sql 语言来操作 ...

  • 简述关系型数据库和非关系型数据库

    当前数据库分为关系型数据库和非关系型数据库 关系型数据库 关系型数据库:指采用了关系模型来组织数据的数据库。关系模...

  • 【工作笔记】简述关系型数据库和非关系型数据库

    当前数据库分为关系型数据库和非关系型数据库。 ·关系型数据库 关系型数据库:指采用了关系模型来组织数据的数据库。 ...

  • D2-练习

    (一) 0、关系型数据库核心元素有哪些?数据库分为关系型数据库和非关系型数据库,我们学的是关系型数据库,关系型数据...

  • 数据库的分类和常见的数据库

    分类:关系型数据库和非关系型数据库常见的关系型数据库有:mysqlOracleSQLserver 非关系型数据库:...

  • 连接数据库(JDBC)

    JDBC:Java DataBase Connection Java数据库连接,用来操作关系型数据库。 连接数据库...

网友评论

      本文标题:Spark实例-操作关系型数据库数据

      本文链接:https://www.haomeiwen.com/subject/phubtxtx.html