|
@@ -24,9 +24,8 @@ object CompanyDynamic {
|
|
|
|
|
|
case class CompanyDynamicUtil(s: SparkSession,
|
|
|
project: String, //表所在工程名
|
|
|
-
|
|
|
ds: String, //此维度主键
|
|
|
- bName:Boolean = false //是否补充cname字段
|
|
|
+ bName: Boolean = false //是否补充cname字段
|
|
|
) extends LoggingUtils with Logging {
|
|
|
@(transient@getter) val spark: SparkSession = s
|
|
|
|
|
@@ -64,16 +63,16 @@ object CompanyDynamic {
|
|
|
val rdd = sql(
|
|
|
bName match {
|
|
|
case false =>
|
|
|
- s"""
|
|
|
- |SELECT *,null AS cname
|
|
|
- |FROM ${getEnvProjectName(env, project)}.ads_change_extract
|
|
|
- |WHERE ds = '$ds'
|
|
|
- |AND tn = '$tableName'
|
|
|
- |AND TYPE in (${types.map("'" + _ + "'").mkString(",")})
|
|
|
- |""".stripMargin
|
|
|
+ s"""
|
|
|
+ |SELECT *,null AS cname
|
|
|
+ |FROM ${getEnvProjectName(env, project)}.ads_change_extract
|
|
|
+ |WHERE ds = '$ds'
|
|
|
+ |AND tn = '$tableName'
|
|
|
+ |AND TYPE in (${types.map("'" + _ + "'").mkString(",")})
|
|
|
+ |""".stripMargin
|
|
|
case true =>
|
|
|
s"""
|
|
|
- |SELECT A.*,TMP.name AS cname
|
|
|
+ |SELECT A.*,B.cname AS cname
|
|
|
|FROM(
|
|
|
| SELECT *
|
|
|
| FROM ${getEnvProjectName(env, project)}.ads_change_extract
|
|
@@ -82,13 +81,10 @@ object CompanyDynamic {
|
|
|
| AND TYPE in (${types.map("'" + _ + "'").mkString(",")})
|
|
|
|) AS A
|
|
|
|LEFT JOIN (
|
|
|
- | SELECT cid,name FROM ${getEnvProjectName(env, project)}.ads_company B
|
|
|
- | WHERE B.ds>'0'
|
|
|
- | UNION ALL
|
|
|
- | SELECT cid,name FROM ${getEnvProjectName(env, project)}.inc_ads_company C
|
|
|
- | WHERE C.ds>'0'
|
|
|
- |) AS TMP
|
|
|
- |ON A.cid = TMP.cid
|
|
|
+ | SELECT cid,cname FROM ${getEnvProjectName(env, project)}.base_company_mapping
|
|
|
+ | WHERE ds=(SELECT MAX(ds) FROM ${getEnvProjectName(env, project)}.base_company_mapping WHERE ds>'0')
|
|
|
+ |) AS B
|
|
|
+ |ON A.cid = B.cid
|
|
|
|""".stripMargin
|
|
|
})
|
|
|
.rdd.flatMap(r => {
|
|
@@ -100,8 +96,8 @@ object CompanyDynamic {
|
|
|
val fields = r.getAs[String]("fields")
|
|
|
val cname = r.getAs[String]("cname")
|
|
|
val result = handle.handle(rowkey, biz_date, cid, if (fields == null) null else fields.split(","), old_data, new_data, cname)
|
|
|
- if(result == null){
|
|
|
- null
|
|
|
+ if (result == null) {
|
|
|
+ None
|
|
|
}
|
|
|
else {
|
|
|
result.map(res => Row(cid, if (cname == null) null else cname, res._1, res._2, res._3, res._4, res._5, res._6, res._7, res._8, DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss")))
|
|
@@ -138,7 +134,7 @@ object CompanyDynamic {
|
|
|
|
|
|
|
|
|
def main(args: Array[String]): Unit = {
|
|
|
- val Array(project, tableName, ds, bName) = if (args.length>=4) args else args:+"false"
|
|
|
+ val Array(project, tableName, ds, bName) = if (args.length >= 4) args else args :+ "false"
|
|
|
|
|
|
println(
|
|
|
s"""
|