读取mysql加载DataFrame

首页 » Spark » 读取mysql加载DataFrame
package spark;

import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.DataFrame;
import org.apache.spark.sql.DataFrameReader;
import org.apache.spark.sql.SQLContext;
import org.apache.spark.sql.SaveMode;

public class dfmysql {
public static void main(String[] args) {
 SparkConf conf = new SparkConf();
 conf.setMaster("local").setAppName("mysql");
 /*
  * 配置join或者聚合操作shuffle数据时分区的数量
  */
 conf.set("spark.sql.shuffle.partitions","100");
 JavaSparkContext sc = new JavaSparkContext(conf);
 SQLContext sqlcontext= new SQLContext(sc);
 
 Map<String,String> opt= new HashMap<String,String>();
 opt.put("url", "jdbc:mysql://192.168.2.14:3306/spark");
 opt.put("driver", "com.mysql.jdbc.Driver");
 opt.put("user","root");
 opt.put("password","933339");
 opt.put("dbtable","score");
 DataFrame score=sqlcontext.read().format("jdbc").options(opt).load();
 score.show();
 score.registerTempTable("linshibiao1");
 
 //第二种方式
 DataFrameReader reader = sqlcontext.read().format("jdbc");
 reader.option("url","jdbc:mysql://192.168.2.14:3306/spark");
 reader.option("driver", "com.mysql.jdbc.Driver");
 reader.option("user","root");
 reader.option("password","933339");
 reader.option("dbtable","person");
 DataFrame person=reader.load();
 person.show();
 person.registerTempTable("linshibiao2");
 
 DataFrame result=sqlcontext.sql("select linshibiao2.id,linshibiao2.name,linshibiao2.age,linshibiao1.score from linshibiao1,linshibiao2 where linshibiao1.name=linshibiao2.name");
 result.show();
 
 
 //将dataframe结果保存到mysql中
 Properties properties = new Properties();
 properties.setProperty("user", "root");
 properties.setProperty("password", "933339");
 /*
  * SaveMode:
  * Overwrite:覆盖
  * Append:追加
  * ErrorIfExists:如果存在就报错
  * Ignore:如果存在就忽略
  */
 result.write().mode(SaveMode.Overwrite).jdbc("jdbc:mysql://192.168.2.14:3306/spark","result2",properties);
 System.out.println("----finish");
 sc.stop();
 
 
}
}
分享到:
赞(0) 打赏

评论 16

评论前必须登录!

 

  1. #1

    不错

    渣渣混8个月前 (03-27)
  2. #2

    我也是学计算机的

    努力8个月前 (03-27)
  3. #3

    good厉害了

    小蚯蚓8个月前 (03-27)
  4. #4

    最好再详细点

    小白8个月前 (03-27)
  5. #5

    good厉害了

    你好8个月前 (03-27)
  6. #6

    奥利给

    你哥8个月前 (03-27)
  7. #7

    我给你点赞了

    小白8个月前 (03-27)
  8. #8

    我也是学计算机的

    中国加油小子8个月前 (03-27)
  9. #9

    给你点赞

    hello8个月前 (03-27)
  10. #10

    我给你点赞了

    笔记本8个月前 (03-27)
  11. #11

    还可以

    奋斗8个月前 (03-27)
  12. #12

    good厉害了

    我是你哥8个月前 (03-27)
  13. #13

    我加你了哦

    奋斗8个月前 (03-28)
  14. #14

    我也是学计算机的

    你好6个月前 (05-26)
  15. #15

    最好再详细点

    笨鸟先飞6个月前 (05-26)
  16. #16

    可以

    我是你哥6个月前 (05-26)

觉得文章有用就打赏一下弟弟吧

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.5主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
正在播放:

作者想对您说:

累了就停下来听首歌吧

听完后会给您一个好心情

最后

等到您不容易

还希望您能多待一会儿

      00:00/00:00