|
@@ -145,7 +145,7 @@ object diff_data_20250319 {
|
|
//
|
|
//
|
|
// val countJsonObject1 = new JSONObject();
|
|
// val countJsonObject1 = new JSONObject();
|
|
// val countJsonObject2 = new JSONObject();
|
|
// val countJsonObject2 = new JSONObject();
|
|
-//
|
|
|
|
|
|
+
|
|
// joinedRDD.foreach { case (logkey, (map1, map2)) =>
|
|
// joinedRDD.foreach { case (logkey, (map1, map2)) =>
|
|
// val keys = map1.keySet().asScala.toSet ++ map2.keySet().asScala.toSet
|
|
// val keys = map1.keySet().asScala.toSet ++ map2.keySet().asScala.toSet
|
|
// println(logkey)
|
|
// println(logkey)
|
|
@@ -203,7 +203,7 @@ object diff_data_20250319 {
|
|
val diffPairs = joinedRDD.flatMap { case (_, (map1, map2)) =>
|
|
val diffPairs = joinedRDD.flatMap { case (_, (map1, map2)) =>
|
|
val keys = map1.keySet().asScala.toSet ++ map2.keySet().asScala.toSet
|
|
val keys = map1.keySet().asScala.toSet ++ map2.keySet().asScala.toSet
|
|
keys.flatMap { key =>
|
|
keys.flatMap { key =>
|
|
- if (map1.has(key) && map2.has(key)) {
|
|
|
|
|
|
+ if (map1.containsKey(key) && map2.containsKey(key)) {
|
|
val value1 = map1.getString(key)
|
|
val value1 = map1.getString(key)
|
|
val value2 = map2.getString(key)
|
|
val value2 = map2.getString(key)
|
|
(tryToNumber(value1), tryToNumber(value2)) match {
|
|
(tryToNumber(value1), tryToNumber(value2)) match {
|
|
@@ -280,6 +280,19 @@ object diff_data_20250319 {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ def tryToNumber(value: Any): Option[java.lang.Number] = {
|
|
|
|
+ value match {
|
|
|
|
+ case num: java.lang.Number => Some(num)
|
|
|
|
+ case str: String =>
|
|
|
|
+ try {
|
|
|
|
+ Some(str.toDouble)
|
|
|
|
+ } catch {
|
|
|
|
+ case _: NumberFormatException => None
|
|
|
|
+ }
|
|
|
|
+ case _ => None
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
def func(record: Record, schema: TableSchema): JSONObject = {
|
|
def func(record: Record, schema: TableSchema): JSONObject = {
|
|
val featureMap = new JSONObject()
|
|
val featureMap = new JSONObject()
|