• SparkSQL读写JDBC


    1.向JDBC读数据

    object SparkSQL02_Datasource {
      def main(args: Array[String]): Unit = {
        //创建上下文环境配置对象
        val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("SparkSQL01_Demo")
    
        //创建SparkSession对象
        val spark: SparkSession = SparkSession.builder().config(conf).getOrCreate()
    
        import spark.implicits._
    
        //方式1:通用的load方法读取
        spark.read.format("jdbc")
          .option("url", "jdbc:mysql://hadoop202:3306/test")
          .option("driver", "com.mysql.jdbc.Driver")
          .option("user", "root")
          .option("password", "123456")
          .option("dbtable", "user")
          .load().show
    
        
        //方式2:通用的load方法读取 参数另一种形式
        spark.read.format("jdbc")
          .options(Map("url"->"jdbc:mysql://hadoop202:3306/test?user=root&password=123456",
            "dbtable"->"user","driver"->"com.mysql.jdbc.Driver")).load().show
    
        //方式3:使用jdbc方法读取
        val props: Properties = new Properties()
        props.setProperty("user", "root")
        props.setProperty("password", "123456")
        val df: DataFrame = spark.read.jdbc("jdbc:mysql://hadoop202:3306/test", "user", props)
        df.show
    
        //释放资源
        spark.stop()
      }
    }
    View Code

    2.向JDBC写数据

    object SparkSQL03_Datasource {
      def main(args: Array[String]): Unit = {
        //创建上下文环境配置对象
        val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("SparkSQL01_Demo")
    
        //创建SparkSession对象
        val spark: SparkSession = SparkSession.builder().config(conf).getOrCreate()
        import spark.implicits._
    
        val rdd: RDD[User2] = spark.sparkContext.makeRDD(List(User2("lisi", 20), User2("zs", 30)))
        val ds: Dataset[User2] = rdd.toDS
        //方式1:通用的方式  format指定写出类型
        ds.write
          .format("jdbc")
          .option("url", "jdbc:mysql://hadoop202:3306/test")
          .option("user", "root")
          .option("password", "123456")
          .option("dbtable", "user")
          .mode(SaveMode.Append)
          .save()
    
        //方式2:通过jdbc方法
        val props: Properties = new Properties()
        props.setProperty("user", "root")
        props.setProperty("password", "123456")
        ds.write.mode(SaveMode.Append).jdbc("jdbc:mysql://hadoop202:3306/test", "user", props)
    
        //释放资源
        spark.stop()
      }
    }
    
    case class User2(name: String, age: Long)
    View Code

      

  • 相关阅读:
    cocos2d-x 2.2 study ------------------------ 双击事件(转)
    cocos2d-x打包Android
    cocos2d-x在win7下的android交叉编译环境
    Cocos2d-x之CCImage深入分析
    Eclipse开发C/C++之使用技巧小结
    TortoiseSVN安装使用
    cocos2d-x 2.2 study ------------------------ CCCallFunC家族
    cocos2d-x改底层之动态改变UIListView中的某项在链表中的位置
    汇编语言,以10进制的方式显示数字
    JVM
  • 原文地址:https://www.cnblogs.com/ttyypjt/p/14757079.html
Copyright © 2020-2023  润新知