1. import org.apache.spark.{SparkConf, SparkContext}
  2. import org.apache.spark.sql.{SQLContext, SaveMode}
  3. import org.apache.spark.sql.hive.HiveContext
  4.  
  5. //spark-shell --driver-class-path /home/hadoop/hive/lib/mysql-connector-java-5.1.46.jar
  6. object playuser {
  7. def main(args: Array[String]): Unit = {
  8. val cf = new SparkConf().setMaster("master").setAppName("NetworkWordCount")
  9. val sc = new SparkContext(cf)
  10. val sqlContext = new SQLContext(sc)
  11. val hc = new HiveContext(sc)
  12. val format = new java.text.SimpleDateFormat("yyyy-MM-dd")
  13. val date = format.format(new java.util.Date().getTime - * * * * )
  14. // val lg = sc.textFile("hdfs://master:9000/data/" + date + "*/01/*.gz")
  15. val lg = sc.textFile("hdfs://master:9000/data/2018-05-1*/21/*.gz")
  16.  
  17. //val date1 = format.format(("27648000000").toLong)
  18. val url ="jdbc:mysql://196.168.100.88:3306/sharpbi?user=biadmin&password=bi_12345"
  19. //val url2 = "jdbc:mysql://rds3dabp9v2v7v596tai.mysql.rds.aliyuncs.com/r2d2?user=r2d2_admin&password=Vj0kHdve3"
  20.  
  21. // insert into mysql
  22. import sqlContext.implicits._
  23.  
  24. val filed2=lg.map(l=>(
  25. l.split("modeType\":\"").last.split("\"").head.replace("{","null"),
  26. l.split("packageName\":\"").last.split("\"").head.replace("{","null"),
  27. l.split("siteName\":\"").last.split("\"").head.replace("{","null"),
  28. l.split("playType\":\"").last.split("\"").head.replace("{","null"),
  29. format.format(l.split("rectime\":").last.split(",").head.replace("{","").toLong),
  30. format.format(l.split("time\":\"").last.split("\"").head.replace("{","").toLong),
  31. l.split("playtime\":\"").last.split("\"").head.replace("{","null").toString,
  32. l.split("custom_uuid\":\"").last.split("\"").head.replace("{","null").toString
  33. )).toDF("modeType","packageName","siteName","playType","rectimedate","timedate","playtime","custom_uuid").registerTempTable("playuser")
  34.  
  35. 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")
  36.  
  37. val prop = new java.util.Properties
    //append 是增
  38. playuser.write.mode("append").jdbc(url, "sharpbi.playuser", prop)
  39. // F1.write.mode("Overwrite").jdbc(url, "sharpbi.test", prop) 重新建表,覆盖原数据
  40. // F1.insertIntoJDBC(url, "day_uv", false)
  41. val stud_scoreDF = sqlContext.read.jdbc(url,"sharpbi.playuser",prop)
  42. stud_scoreDF.count()
  43.  
  44. }
  45. }

spark2.2jdbc写入mysql 的两种方法(append,Overriedwrite)-不用Mysql建表的更多相关文章

  1. BayaiM__Linux安装MySQL的两种方法

    BayaiM__Linux安装MySQL的两种方法     < 以下内容,纯属抄袭,如有雷同,爱咋咋地 >  阅读(21210) | 评论(4340) | 转发(5660) | 删除 编辑 ...

  2. Linux安装MySQL的两种方法

    转载:http://blog.csdn.net/superchanon/article/details/8546254/ 1.       运行平台:CentOS 6.3 x86_64,基本等同于RH ...

  3. C++连接mysql的两种方式(ADO连接和mysql api连接)

    一.ADO连接mysql 1.安装mysql-5.5.20-win32.msi和mysql-connector-odbc-5.3.4-win32.msi(一般两个安装程序要匹配,否则可能连接不上)  ...

  4. mac安装mysql的两种方法(含配置)

    1.使用安装包安装mysql 双击打开安装文件 双击pkg文件安装 一路向下,记得保存最后弹出框中的密码(它是你mysql root账号的密码) 正常情况下,安装成功. 此时只是安装成功,但还需要额外 ...

  5. 链接mysql的两种方法

    使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库. 实例 以下是从命令行中连接mysql服务器的简单实例: [root@host]# my ...

  6. ASP 连接 MySQL 数据库两种方法

    一般都是用myodbc来连接.首先,在系统中安装 Mysql 的ODBC数据库驱动.如安装稳定版本是3.51.下载地址是:http://dev.mysql.com/downloads/connecto ...

  7. iOS开发小技巧--边接受数据边写入文件的两种方法

    一.NSFileHanle 使用注意点:在往文件写入数据时,必须创建一个空的文件 指定文件写入的方式 -- 覆盖还是追加 最后记得关闭 <1>代码是在大文件传输的练习中截取的.写入数据之前 ...

  8. Mysql模式匹配两种方法

    一.使用LIKE或NOT LIKE比较操作符 使用 "_" 匹配任何单个字符,而 "%" 匹配任意数量的字符(包括零字符): 例如: 1.要想找出以“b”开头的 ...

  9. MySQL中删除数据的两种方法

    转自:http://blog.csdn.net/apache6/article/details/2778878 1. 在MySQL中有两种方法可以删除数据: 一种是delete语句,另一种是trunc ...

随机推荐

  1. PHP函数 ------ ctype_alnum

    //判断是否是字母和数字或字母数字的组合 if(!ctype_alnum($str)){ echo '只能是字母或数字的组合';exit; }整理下ctype functions: 1.ctype_a ...

  2. linux 校准时间

    ntpdate cn.pool.ntp.org //查看硬件时间可以是用hwclock,hwclock --show 或者hwclock -r [root@localhost ~]# hwclock ...

  3. mxnet安装及NDArray初体验

    一.mxnet安装 (以下均为mac环境) 有二种方式: 1.1 用conda安装 #创建gluon目录 mkdir gluon-tutorials && cd gluon-tutor ...

  4. c++文件打包工具实现

    没事做就来写一个打包的工具吧.很多是网络上面找的,只是我把他修改一下合并在一起. // PacketFile.cpp : 定义控制台应用程序的入口点. #include "stdafx.h& ...

  5. C#编程(七十五)----------C#使用指针

    原文链接: http://blog.csdn.net/shanyongxu/article/details/47321441 在C#中使用指针的语法 如果想在C#中使用指针,首先对项目进行过配置: 看 ...

  6. 17、python对内存的使用

    python对内存的使用 浅拷贝和深拷贝 所谓浅拷贝就是对引用的拷贝(只拷贝父对象) 所谓深拷贝就是对对象的资源的拷贝 解释一个例子: import copy a = [1,2,3,['a','b', ...

  7. 在 Visual Studio 2010 中配置SharpPcap

    最近需要在C#下写一个抓取ARP包的程序,网上找来找去,在C#下只能用SharpPcap来做了.SharpPcap是作者把winPcap用C#重新封装而来的,详细信息见如下的链接. SharpPcap ...

  8. crontab不能执行sudo:抱歉,您必须拥有一个终端来执行 sudo

    最近做一个可执行shell调度的需求,要求用户输入shell,然后后台定时调度运行.实现大致为:保存用户的输入,设定时间,crontab定时执行用户的输入.但这里涉及到一个安全问题,如何确定用户的输入 ...

  9. Linux 安装 yum

    1.使用RedHat系统不能正常使用yum安装 由于RedHat没有注册,所有不能使用它自身的资源更新, 查看安装源是否安装: # rpm –qa|grep yum 卸载安装源: # rpm –e – ...

  10. 系统学习NLP(二十一)--SWEM

    https://blog.csdn.net/App_12062011/article/details/88655589 这篇发表在 ACL 2018 上的论文来自于杜克大学 Lawrence Cari ...