|
@@ -64,16 +64,16 @@ case class Company_Completion_Utils(s: SparkSession,
|
|
|
}
|
|
|
id_card_trimOrRaw_udf()
|
|
|
lastDsIncOds = minDs
|
|
|
- spark.sparkContext.setJobDescription(s"补全身份证号码:zxr_restrict_person($lastDsIncOds)")
|
|
|
+ spark.sparkContext.setJobDescription(s"补全企业cid:${mapTables.size}个表+企业映射表聚合($lastDsIncOds)")
|
|
|
sql(mapTables.map(m => {
|
|
|
s"""
|
|
|
|SELECT SPLIT(${m._2._1},';')[0] AS cid, ${m._2._2} AS company_name, ${m._2._3} AS organization_code, ${m._2._4} AS source, ${m._2._4} AS flag
|
|
|
- |FROM ods_${m._1}
|
|
|
+ |FROM $project.ods_${m._1}
|
|
|
|WHERE ds>'0' AND ${m._2._2} IS NOT NULL AND LENGTH(${m._2._2})>=5
|
|
|
|UNION ALL
|
|
|
|SELECT SPLIT(${m._2._1},';')[0] AS cid, ${m._2._2} AS company_name, ${m._2._3} AS organization_code, ${m._2._4} AS source, ${m._2._4} AS flag
|
|
|
- |FROM inc_ods_${m._1}
|
|
|
- |WHERE ds=$lastDsIncOds AND ${m._2._2} IS NOT NULL AND LENGTH(${m._2._2})>=5
|
|
|
+ |FROM $project.inc_ods_${m._1}
|
|
|
+ |WHERE ds>'0' AND ${m._2._2} IS NOT NULL AND LENGTH(${m._2._2})>=5
|
|
|
|""".stripMargin
|
|
|
}).toArray.mkString(" UNION ALL ")
|
|
|
).createOrReplaceTempView("tmp_company_cloze_1")
|
|
@@ -96,9 +96,15 @@ case class Company_Completion_Utils(s: SparkSession,
|
|
|
|INSERT ${if (isWindows) "INTO" else "OVERWRITE"} table $project.ads_company_cloze partition(ds='$lastDsIncOds')
|
|
|
|SELECT cid, company_name, organization_code, source, flag
|
|
|
|FROM(
|
|
|
- | SELECT cid, company_name, organization_code, source, flag
|
|
|
- | ,ROW_NUMBER() OVER (PARTITION BY cid,company_name ORDER BY cid DESC) num
|
|
|
- | FROM tmp_company_cloze_2
|
|
|
+ | SELECT IF(A.cid IS NULL AND B.new_cid IS NOT NULL,B.new_cid,A.cid) AS cid
|
|
|
+ | ,A.company_name
|
|
|
+ | ,A.organization_code
|
|
|
+ | ,A.source
|
|
|
+ | ,IF(A.cid IS NULL AND B.new_cid IS NOT NULL,-1,A.flag) AS flag
|
|
|
+ | ,ROW_NUMBER() OVER (PARTITION BY A.cid,A.company_name ORDER BY A.cid DESC) num
|
|
|
+ | FROM tmp_company_cloze_2 A
|
|
|
+ | LEFT JOIN $project.base_company_mapping B
|
|
|
+ | ON A.company_name=B.cname
|
|
|
|)
|
|
|
|WHERE num=1
|
|
|
|""".stripMargin
|