在spark中操作mysql数据 ---- spark学习之七
来源:互联网 发布:淘宝手机端链接转换 编辑:程序博客网 时间:2024/04/27 03:21
在spark中操作mysql数据 ---- spark学习之七
使用spark的 DataFrame 来操作mysql数据。
DataFrame是比RDD更高一个级别的抽象,可以应用SQL语句进行操作,详细参考:
https://spark.apache.org/docs/latest/sql-programming-guide.html
这里暂时使用spark-shell进行操作,
1.首先,必须要先下载一个mysql的jdbc的驱动
可以从这里下载
2.然后呢,就好办了。
#具体的启动spark-shell的方法(带上mysql的driver)$~/spark-shell --driver-class-path /path-to-mysql-jar/mysql-connector-java-5.1.34-bin.jar#定义mysql的信息val url="jdbc:mysql://10.181.176.226:3306/geo_info"val prop = new java.util.Propertiesprop.setProperty("user","geo")prop.setProperty("password","xxxxxx”)#指定读取条件,这里 Array("country_code='CN'") 是where过滤条件
val cnFlight = sqlContext.read.jdbc(url,"gps_location",Array("country_code='CN'"),prop)#然后进行groupby 操作,获取数据集合val emailList = cnFlight.groupBy("gps_city", "user_mail”)#计算数目,并根据数目进行降序排序val sorted = emailList.count().orderBy( desc("count") )#显示前10条sorted.show(10)#存储到文件(这里会有很多分片文件。。。)sorted.rdd.saveAsTextFile("/home/qingpingzhang/data/flight_top”)#存储到mysql表里sorted.write.jdbc(url,"table_name",prop)
3.具体文件编写代码,然后提交worker也类似,主要是DataFrame的 sqlContext声明会不一样。
val sc: SparkContext // An existing SparkContext.val sqlContext = new org.apache.spark.sql.SQLContext(sc)
这里如果要用spark-submit,则会有坑,即便你是用sbt的assembly来打包的一个全的jar包:
参考:http://www.iteblog.com/archives/1300
[itelbog@iteblog ~]$ bin/spark-submit --master local[2] --driver-class-path lib/mysql-connector-java-5.1.35.jar --class spark.SparkToJDBC ./spark-test_2.10-1.0.jar
0 0
- 在spark中操作mysql数据 ---- spark学习之七
- 在spark中操作mysql数据 ---- spark学习之七
- Spark学习之17:Spark访问MySQL
- spark mllib机器学习之七 TFIDF
- Spark数据存储到mysql中
- Spark学习之在集群上运行Spark(6)
- scala 在 spark 中操作 hdfs
- scala 在 spark 中操作 hdfs
- spark sql 操作mysql
- spark操作mysql
- spark操作mysql数据库
- spark操作mysql数据库
- Spark操作MySQL数据库
- 在Spark中使用Pivot重塑数据
- Spark学习之RDD常用操作
- Spark学习之RDD基本操作
- Spark学习之四-键值对操作
- spark 读取mysql数据
- activiti eclipse 插件不自动生成png
- 数据库备份计划
- Spring PropertyPlaceholderConfigurer实例
- centos架设FTP服务器
- leetcode Maximum Product of Word Lengths
- 在spark中操作mysql数据 ---- spark学习之七
- android 游戏 动画
- 在重要的层快外加上wrapper层或者div不要设置padding(border影响不大)
- libsvm 训练后的模型参数讲解
- centOS6.5 命令配置ip地址
- Tomcat集群配置学习篇-----分布式应用
- 在linux上搭建mycat环境
- Android中的Touch事件
- iOS推送大全