Commit 84a07c97 authored by 王志伟's avatar 王志伟

new Demand

parent 109a6a45
package com.gmei package com.gmei
import java.io.Serializable import java.io.Serializable
import java.text.SimpleDateFormat
import java.util.Calendar
import com.gmei.WeafareStat.{defaultParams, parser} import com.gmei.WeafareStat.{defaultParams, parser}
import org.apache.spark.sql.{SaveMode, TiContext} import org.apache.spark.sql.{SaveMode, TiContext}
...@@ -10,30 +8,30 @@ import org.apache.log4j.{Level, Logger} ...@@ -10,30 +8,30 @@ import org.apache.log4j.{Level, Logger}
import scopt.OptionParser import scopt.OptionParser
import com.gmei.lib.AbstractParams import com.gmei.lib.AbstractParams
import scala.util.parsing.json.JSON
object testt { object testt {
Logger.getLogger("org.apache.spark").setLevel(Level.WARN) Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
Logger.getLogger("org.apache.eclipse.jetty.server").setLevel(Level.OFF) Logger.getLogger("org.apache.eclipse.jetty.server").setLevel(Level.OFF)
case class Params(env: String = "dev") extends AbstractParams[Params] with Serializable case class Params(env: String = "dev",
date: String = "2018-08-01"
) extends AbstractParams[Params] with Serializable
val defaultParams = Params() val defaultParams = Params()
val parser = new OptionParser[Params]("Feed_EDA") { val parser = new OptionParser[Params]("Feed_EDA") {
head("testt") head("WeafareStat")
opt[String]("env") opt[String]("env")
.text(s"the databases environment you used") .text(s"the databases environment you used")
.action((x, c) => c.copy(env = x)) .action((x, c) => c.copy(env = x))
//opt[String] ("date") opt[String] ("date")
// .text(s"the date you used") .text(s"the date you used")
// .action((x,c) => c.copy(date = x)) .action((x,c) => c.copy(date = x))
note( note(
""" """
|For example, the following command runs this app on a tidb dataset: |For example, the following command runs this app on a tidb dataset:
| |
| spark-submit --class com.gmei.testt ./target/scala-2.11/feededa-assembly-0.1.jar \ | spark-submit --class com.gmei.WeafareStat ./target/scala-2.11/feededa-assembly-0.1.jar \
""".stripMargin + """.stripMargin +
s"| --env ${defaultParams.env}" s"| --env ${defaultParams.env}"
) )
...@@ -52,45 +50,43 @@ object testt { ...@@ -52,45 +50,43 @@ object testt {
ti.tidbMapTable(dbName = "jerry_test", tableName = "bl_device_list") ti.tidbMapTable(dbName = "jerry_test", tableName = "bl_device_list")
ti.tidbMapTable(dbName = "jerry_prod", tableName = "data_feed_exposure") ti.tidbMapTable(dbName = "jerry_prod", tableName = "data_feed_exposure")
val strategies = Seq("3$","4$","5$","6$","7$","8$","c$","d$","e$","A$","B$","C$","D$")
for (strategy <- strategies){ import sc.implicits._
println(strategy) // val stat_date = GmeiConfig.getMinusNDate(1)
for(i <- 1 to 10){ println(param.date)
val cal = Calendar.getInstance val partition_date = param.date.replace("-","")
cal.add(Calendar.DATE, -i) val diary_id = sc.sql(
//设置时间格式
val time = cal.getTime
//将时间格式套用在获取的时间戳上
val newtime: String = new SimpleDateFormat("yyyyMMdd").format(time)
println(newtime)
val get_data_dura = sc.sql(
s""" s"""
|select partition_date,params["duration"] |select distinct(cid_id) as diary_id
|from online.tl_hdfs_maidian_view |from data_feed_click
|where action="on_app_session_over"
|and cl_id regexp'${strategy}'
|and partition_date = ${newtime}
""".stripMargin """.stripMargin
) )
get_data_dura.printSchema diary_id.show()
get_data_dura.show(5) diary_id.createOrReplaceTempView("diary_id")
val tst = get_data_dura.filter("params[duration] > 0")
val tst2 = tst.filter("params[duration] > 0")
val clk_count = sc.sql(
s"""
|select sum(params["out"]-params["in"]) as dur_time count(cl_id) as num_clk dur_time/num_clk as avg_dur
|from online.tl_hdfs_maidian_view tl inner join diary_id
|on tl.params["business_id"] = diary_id.diary_id
|where action="page_view"
|and partition_date >='20180801' and partition_date <'20181107'
|group by tl.params["business_id"] order by avg_dur desc
""".stripMargin
)
// println(rows(1)) 这样会报错 val result = clk_count
} result.show()
} }
}
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment