zoukankan      html  css  js  c++  java
  • middle源码

    CREATE TABLE `middle` (
    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    `innserSessionid` VARCHAR(250),
    `times` VARCHAR(250),
    `number` VARCHAR(250),
    `category` VARCHAR(250),
    `svalue` DECIMAL(32,7),
    `wordscount` BIGINT,
    `categoryscount` BIGINT,
    `rank` DECIMAL(24,4),
     PRIMARY KEY (`id`) 
    ) DEFAULT CHARSET=utf8;
    ALTER TABLE `middle` ADD INDEX(`category`);
    /**
      * Created by lkl on 2017/7/31.
      */
    /**
      * Created by lkl on 2017/6/26.
      *///spark-shell --driver-class-path /home/hadoop/test/mysqljdbc.jar
    import java.math.BigDecimal
    import java.sql.{DriverManager, ResultSet}
    import org.apache.spark.SparkContext
    import org.apache.spark.SparkConf
    import java.text.SimpleDateFormat
    import java.util.Date
    object middle {
    
      val rl = "jdbc:mysql://192.168.0.37:3306/emotional?user=root&password=123456&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false"
      classOf[com.mysql.jdbc.Driver]
      val conn = DriverManager.getConnection(rl)
    
      def main(args: Array[String]) {
        val conf = new SparkConf().setMaster("local").setAppName("test")
        val sc = new SparkContext(conf)
        val sqlContext = new org.apache.spark.sql.SQLContext(sc)
    
        val titlesplit1 = sqlContext.jdbc("jdbc:mysql://192.168.0.37:3306/emotional?user=root&password=123456", "titlesplit")
        val titlesplit = titlesplit1.toDF().registerTempTable("titlesplit")
    
        val category1 = sqlContext.jdbc("jdbc:mysql://192.168.0.37:3306/emotional?user=root&password=123456", "categorys")
        val category = category1.toDF().registerTempTable("categorys")
    
        val layer1 = sqlContext.jdbc("jdbc:mysql://192.168.0.37:3306/emotional?user=root&password=123456", "layer")
        val layer = layer1.toDF().registerTempTable("layer")
    
        val format = new java.text.SimpleDateFormat("yyyyMMdd")
        val date = format.format(new java.util.Date().getTime())
        import sqlContext.implicits._
    
        val value = sqlContext.sql("SELECT  titlesplit.`innserSessionid`," +
          "titlesplit.`times`,categorys.`number`," +
          "categorys.`category`,SUM(layer.`VALUE`) svalue," +
          "COUNT(DISTINCT titlesplit.`id`) AS  wordscount," +
          "COUNT(DISTINCT categorys.`id`) AS categoryscount," +
          "COUNT(DISTINCT categorys.`id`)/COUNT(DISTINCT titlesplit.`id`) AS rank" +
          " FROM titlesplit   LEFT JOIN categorys " +
          " ON titlesplit.`words`=categorys.`words`" +
          "  LEFT  JOIN `layer` ON  titlesplit.`words`=layer.`words`  " +
          "GROUP  BY titlesplit.`innserSessionid`,titlesplit.`times`," +
          "categorys.`number`,categorys.`category`").toDF("innserSessionid", "times", "category", "number", "svalue", "wordscount", "categoryscount", "rank")
    
          // value.insertIntoJDBC(rl,"middles",false)
    
    
            //val jo = value.toDF("innserSessionid", "times", "category", "svalue", "wordscount", "categoryscount", "rank")
           val  a=value.count()
            print(a)
        val p1 = value.map(p => {
          val v0 = p.getString(0)
          val v1 = p.getString(1)
          val v2 = p.getString(2)
          val v3 = p.getString(3)
          val v4 = p.getDecimal(4)
          var v5 = p.getLong(5)
          val v6 = p.getLong(6)
          val v7 = p.getDouble(7)
          (v0,v1,v2,v3,v4,v5,v6,v7)
    
        })
        p1.foreach(p => {
              val v1=p._1
              val v2=p._2
              val v3=p._3
              val v4=p._4
              val v5=p._5
              val v6=p._6
              val v7=p._7
              val v8=p._8
              insert(v1,v2,v3,v4,v5,v6,v7,v8)
            })
            conn.close()
    
          }
    
          def insert (value0:String,value1:String,value2:String,value3:String,value4:BigDecimal,value5:Long,value6:Long,value7:Double): Unit ={
    
    
            val statement = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE)
            // CREATE TABLE words2(innersessionId VARCHAR(100),words VARCHAR(100), VARCHAR(100),posit VARCHAR(100),va VARCHAR(100))
            try {
              val prep = conn.prepareStatement("INSERT INTO middle(innserSessionid,times,number,category,svalue,wordscount,categoryscount,rank) VALUES (?,?,?,?,?,?,?,?) ")
              prep.setString(1,value0)
              prep.setString(2,value1)
              prep.setString(3,value2)
              prep.setString(4,value3)
              prep.setBigDecimal(5,value4)
              prep.setLong(6,value5)
              prep.setLong(7,value6)
              prep.setDouble(8,value7)
              prep.executeUpdate
            } catch{
              case e:Exception =>e.printStackTrace
            }
            finally {
            }
    
          }
    
      }
  • 相关阅读:
    手下有个人总是用一些小的缺点来否认你的决定的优点,如何解决这个问题? (转载)
    初等代数
    全民上网到全民织网 Web 2.0掀起人民战争
    这个sql语句:列出各门课程成绩最好的两位学生?
    在XML中发送二进制数据
    .NetFramework 数据保存与传输之序列化对象
    Duwamish学习之构架篇错误捕获
    在.NET环境中使用单元测试工具NUnit
    [翻译]XNA外文博客文章精选之fourteen
    [翻译]XNA外文博客文章精选之nine
  • 原文地址:https://www.cnblogs.com/canyangfeixue/p/7269317.html
Copyright © 2011-2022 走看看