Commit f7324e6a authored by 高雅喆's avatar 高雅喆

add device duration

parent 7c856a21
...@@ -699,6 +699,107 @@ object GetLevelCount { ...@@ -699,6 +699,107 @@ object GetLevelCount {
) )
level1_name.show() level1_name.show()
sc.stop()
}
}
}
object GetDeviceDuration {
Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
Logger.getLogger("org.apache.eclipse.jetty.server").setLevel(Level.OFF)
case class Params(env: String = "dev",
date: String = GmeiConfig.getMinusNDate(1)
) extends AbstractParams[Params] with Serializable
val defaultParams = Params()
val parser = new OptionParser[Params]("Feed_EDA") {
head("EsmmData")
opt[String]("env")
.text(s"the databases environment you used")
.action((x, c) => c.copy(env = x))
opt[String]("date")
.text(s"the date you used")
.action((x,c) => c.copy(date = x))
note(
"""
|For example, the following command runs this app on a tidb dataset:
|
| spark-submit --class com.gmei.EsmmData ./target/scala-2.11/feededa-assembly-0.1.jar \
""".stripMargin +
s"| --env ${defaultParams.env}"
)
}
def main(args: Array[String]): Unit = {
parser.parse(args, defaultParams).map { param =>
GmeiConfig.setup(param.env)
val spark_env = GmeiConfig.getSparkSession()
val sc = spark_env._2
val ti = new TiContext(sc)
ti.tidbMapTable(dbName = "jerry_prod",tableName = "data_feed_click")
import sc.implicits._
val stat_date = param.date
val uid_duration = sc.sql(
s"""
|select a.device_id,coalesce(a.start_time,a.ndiary_in,0) in_time,coalesce(a.end_time,a.ndiary_out,0) out_time,
|explode(split(b.level1_ids,';')) level1_id
|from data_feed_click a
|left join diary_feat b on a.cid_id = b.diary_id
|where a.stat_date > '2018-12-12'
""".stripMargin
)
uid_duration.show()
val uid_duration_last = sc.sql(
s"""
|select d.device_id,
|sum(if(d.level1_id=0,sum_duration,0)) as 'kongbai',
|sum(if(d.level1_id=1,sum_duration,0)) as 'yanbu',
|sum(if(d.level1_id=10,sum_duration,0)) as 'simi',
|sum(if(d.level1_id=1024,sum_duration,0)) as 'zitizhifang',
|sum(if(d.level1_id=1080,sum_duration,0)) as 'banyongjiu',
|sum(if(d.level1_id=11,sum_duration,0)) as 'yachi',
|sum(if(d.level1_id=12,sum_duration,0)) as 'kouchun',
|sum(if(d.level1_id=13,sum_duration,0)) as 'erbu',
|sum(if(d.level1_id=2,sum_duration,0)) as 'bibu',
|sum(if(d.level1_id=2053,sum_duration,0)) as 'remen',
|sum(if(d.level1_id=2054,sum_duration,0)) as 'banyongjiuzhuang',
|sum(if(d.level1_id=2212,sum_duration,0)) as 'jiankangguanli',
|sum(if(d.level1_id=2214,sum_duration,0)) as 'qita',
|sum(if(d.level1_id=3,sum_duration,0)) as 'lunkuo',
|sum(if(d.level1_id=4,sum_duration,0)) as 'shoushen',
|sum(if(d.level1_id=5,sum_duration,0)) as 'pifu',
|sum(if(d.level1_id=6933,sum_duration,0)) as 'shenghuo',
|sum(if(d.level1_id=7,sum_duration,0)) as 'xiongbu',
|sum(if(d.level1_id=9,sum_duration,0)) as 'maofa',
|sum(if(d.level1_id=922,sum_duration,0)) as 'kangshuai',
|sum(if(d.level1_id=929,sum_duration,0)) as 'shili',
|sum(if(d.level1_id=971,sum_duration,0)) as 'chanhouxiufu',
|sum(if(d.level1_id=992,sum_duration,0)) as 'zhushe'
|from
| (select c.device_id,c.level1_id,sum(c.duration) as sum_duration from
| (select a.device_id,
| coalesce(a.end_time,a.ndiary_out,0)-coalesce(a.start_time,a.ndiary_in,0) as duration,
| explode(split(b.level1_ids,';')) level1_id
| from data_feed_click a
| left join diary_feat b on a.cid_id = b.diary_id where a.stat_date > '2018-12-12') c
| group by c.device_id,c.level1_id) d
|group by d.device_id
""".stripMargin
)
uid_duration_last.show()
sc.stop() sc.stop()
} }
......
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