spark2.2jdbc写入mysql 的两种方法(append,Overriedwrite)-不用Mysql建表
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.{SQLContext, SaveMode}
import org.apache.spark.sql.hive.HiveContext
//spark-shell --driver-class-path /home/hadoop/hive/lib/mysql-connector-java-5.1.46.jar
object playuser {
def main(args: Array[String]): Unit = {
val cf = new SparkConf().setMaster("master").setAppName("NetworkWordCount")
val sc = new SparkContext(cf)
val sqlContext = new SQLContext(sc)
val hc = new HiveContext(sc)
val format = new java.text.SimpleDateFormat("yyyy-MM-dd")
val date = format.format(new java.util.Date().getTime - * * * * )
// val lg = sc.textFile("hdfs://master:9000/data/" + date + "*/01/*.gz")
val lg = sc.textFile("hdfs://master:9000/data/2018-05-1*/21/*.gz")
//val date1 = format.format(("27648000000").toLong)
val url ="jdbc:mysql://196.168.100.88:3306/sharpbi?user=biadmin&password=bi_12345"
//val url2 = "jdbc:mysql://rds3dabp9v2v7v596tai.mysql.rds.aliyuncs.com/r2d2?user=r2d2_admin&password=Vj0kHdve3"
// insert into mysql
import sqlContext.implicits._
val filed2=lg.map(l=>(
l.split("modeType\":\"").last.split("\"").head.replace("{","null"),
l.split("packageName\":\"").last.split("\"").head.replace("{","null"),
l.split("siteName\":\"").last.split("\"").head.replace("{","null"),
l.split("playType\":\"").last.split("\"").head.replace("{","null"),
format.format(l.split("rectime\":").last.split(",").head.replace("{","").toLong),
format.format(l.split("time\":\"").last.split("\"").head.replace("{","").toLong),
l.split("playtime\":\"").last.split("\"").head.replace("{","null").toString,
l.split("custom_uuid\":\"").last.split("\"").head.replace("{","null").toString
)).toDF("modeType","packageName","siteName","playType","rectimedate","timedate","playtime","custom_uuid").registerTempTable("playuser")
val playuser = sqlContext.sql("select modeType,packageName,siteName,playType,rectimedate,timedate,sum(playtime) as playtime,count(custom_uuid) as playstotal,count(distinct custom_uuid) customtotal from playuser group by modeType,packageName,siteName,playType,rectimedate,timedate")
val prop = new java.util.Properties
//append 是增
playuser.write.mode("append").jdbc(url, "sharpbi.playuser", prop)
// F1.write.mode("Overwrite").jdbc(url, "sharpbi.test", prop) 重新建表,覆盖原数据
// F1.insertIntoJDBC(url, "day_uv", false)
val stud_scoreDF = sqlContext.read.jdbc(url,"sharpbi.playuser",prop)
stud_scoreDF.count()
}
}
spark2.2jdbc写入mysql 的两种方法(append,Overriedwrite)-不用Mysql建表的更多相关文章
- BayaiM__Linux安装MySQL的两种方法
BayaiM__Linux安装MySQL的两种方法 < 以下内容,纯属抄袭,如有雷同,爱咋咋地 > 阅读(21210) | 评论(4340) | 转发(5660) | 删除 编辑 ...
- Linux安装MySQL的两种方法
转载:http://blog.csdn.net/superchanon/article/details/8546254/ 1. 运行平台:CentOS 6.3 x86_64,基本等同于RH ...
- C++连接mysql的两种方式(ADO连接和mysql api连接)
一.ADO连接mysql 1.安装mysql-5.5.20-win32.msi和mysql-connector-odbc-5.3.4-win32.msi(一般两个安装程序要匹配,否则可能连接不上) ...
- mac安装mysql的两种方法(含配置)
1.使用安装包安装mysql 双击打开安装文件 双击pkg文件安装 一路向下,记得保存最后弹出框中的密码(它是你mysql root账号的密码) 正常情况下,安装成功. 此时只是安装成功,但还需要额外 ...
- 链接mysql的两种方法
使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库. 实例 以下是从命令行中连接mysql服务器的简单实例: [root@host]# my ...
- ASP 连接 MySQL 数据库两种方法
一般都是用myodbc来连接.首先,在系统中安装 Mysql 的ODBC数据库驱动.如安装稳定版本是3.51.下载地址是:http://dev.mysql.com/downloads/connecto ...
- iOS开发小技巧--边接受数据边写入文件的两种方法
一.NSFileHanle 使用注意点:在往文件写入数据时,必须创建一个空的文件 指定文件写入的方式 -- 覆盖还是追加 最后记得关闭 <1>代码是在大文件传输的练习中截取的.写入数据之前 ...
- Mysql模式匹配两种方法
一.使用LIKE或NOT LIKE比较操作符 使用 "_" 匹配任何单个字符,而 "%" 匹配任意数量的字符(包括零字符): 例如: 1.要想找出以“b”开头的 ...
- MySQL中删除数据的两种方法
转自:http://blog.csdn.net/apache6/article/details/2778878 1. 在MySQL中有两种方法可以删除数据: 一种是delete语句,另一种是trunc ...
随机推荐
- Shell中的>/dev/null 2>&1 与 2>&1 >/dev/null 与&>/dev/null 的区别
默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入).标准输出(输出到屏幕).标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,1,2 .那么我们来看看下面的几种重定向方法的区别: & ...
- Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2) 【ABC】
老年人题解,语言python3 A - Bank Robbery 题意:给你ABC,以及n个数,问你在(B,C)之间的数有多少个. 题解:对于每个数判断一下就好了嘛 x,y,z = map(int,i ...
- 配置sonar和jenkins进行代码审查
转自: http://www.cnblogs.com/gao241/p/3190701.html, 版权归原作者所有. 本文以CentOS操作系统为例介绍Sonar的安装配置,以及如何与Jenkin ...
- php实现查询上传文件进度
参考:http://www.ultramegatech.com/2010/10/create-an-upload-progress-bar-with-php-and-jquery/ 11OCT/108 ...
- centos 终端界面代理设置
一.centos自带界面设置代理 1. 界面设置 squid默认代理端口3128. 2. firefox设置 设置 -> 局域网设置 -> ip:port / username:passw ...
- Android四大组件应用系列5——使用AIDL实现跨进程调用Service
一.问题描述 Android应用程序的四大组件中Activity.BroadcastReceiver.ContentProvider.Service都可以进行跨进程.在上一篇我们通过ContentPr ...
- 微软BI SSRS 2012 Metro UI Win 8 风格的报表课程案例全展示
开篇介绍 微软BI SSRS 2012 Metro UI 高端报表视频教程 (http://www.hellobi.com/course/15)课程从2014年6月开始准备,于2014年9月在 天善B ...
- JSR-303 Bean Validation 介绍及 Spring MVC 服务端验证最佳实践
任何时候,当要处理一个应用程序的业务逻辑,数据校验是你必须要考虑和面对的事情. 应用程序必须通过某种手段来确保输入参数在上下文来说是正确的. 分层的应用在很多时候,同样的数据验证逻辑会出现在不同的层, ...
- 《Unix&Linux大学教程》学习笔记5 :正则表达式
1:Unix下正则表达式规则
- Jmeter+Ant+Jenkins搭建持续集成的接口测试(推荐 Mark)
转自:http://my.oschina.net/hellotest/blog/516079 目录[-] 一.Jmeter+ant 二.Jmeter+ant+Jenkins 三.Tomcat配置虚拟目 ...