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 ...
随机推荐
- [CF521D]Shop
[CF521D]Shop 题目大意: 你有一个长度为\(k(k\le10^5)\)的数列\(A_{1\sim k}\),有\(n(n\le10^5)\)种操作,操作包含以下\(3\)种: 将\(A_x ...
- js签名
<!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...
- 多个gridSelect引用同一个dizData
independence设置为true,如果不设置,下拉没有数据.
- [c#基础]ICloneable接口
摘要 该接口使你能够创建现有对象的副本的自定义的实现.该接口只提供了,一个Clone方法,实现对象的浅拷贝.有浅拷贝,那么就有相对应的深拷贝.但该接口并没有对我们提供,需要我们自己实现. 什么是浅拷贝 ...
- sqlplus 执行 sql 文件
SQL>START file_name or SQL>@ file_name 1 .sqlplus system/system@srv 2. sql>@c:\a.sql (执行此 ...
- 自己训练SVM分类器进行HOG行人检测
正样本来源是INRIA数据集中的96*160大小的人体图片,使用时上下左右都去掉16个像素,截取中间的64*128大小的人体. 负样本是从不包含人体的图片中随机裁取的,大小同样是64*128(从完全不 ...
- 如何用 async 控制流程
来自: http://larry850806.github.io/2016/05/31/async/ [Javascript] 如何用 async 控制流程 (一) 31 May 2016 async ...
- Win10更新搜狗输入法后重启输入密码蓝屏
解决办法:如果能进入安全模式,卸载搜狗输入法:不行的话(好像不行)只能重装系统:因为蓝屏后就基本开不了了!!!生气!! win10 1809 19.3月累积更新之后蓝屏:安装了搜狗输入法的win10 ...
- C# Chart使用总结 2 ----属性
默认显示如图所示,Series的名称显示在右边,它会将下方空间挤掉,使图表只能显示在左侧,而右侧大部分地方都是空白的.当图很宽的时候看着会很不舒服. 可以设置Legends 集合中的Docking ...
- 修改oracle为归档模式
1.查看是否为归档模式 SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled ...