Browse Source

修改逻辑

xueyiming 2 weeks ago
parent
commit
1f9449c2d9

+ 5 - 10
src/main/scala/com/aliyun/odps/spark/examples/makedata_ad/v20240718/makedata_ad_33_addFeatureToHive_20250708.scala

@@ -1,11 +1,9 @@
 package com.aliyun.odps.spark.examples.makedata_ad.v20240718
 
-import com.aliyun.odps.{Column, TableSchema}
 import com.aliyun.odps.data.Record
-import com.aliyun.odps.spark.examples.makedata_ad.v20240718.makedata_ad_33_bucketDataFromOriginToHive_20250522.write
 import com.aliyun.odps.spark.examples.myUtils.{MyDateUtils, ParamUtils, env}
+import com.aliyun.odps.{Column, TableSchema}
 import org.apache.spark.sql.SparkSession
-import shapeless.syntax.std.tuple.productTupleOps
 
 object makedata_ad_33_addFeatureToHive_20250708 {
   def main(args: Array[String]): Unit = {
@@ -96,19 +94,16 @@ object makedata_ad_33_addFeatureToHive_20250708 {
       throw new IllegalArgumentException("表中不存在 'mid' 字段,请检查字段名")
     }
 
-    val mid = Option(record.get(midIndex))
-      .map(_.toString) // 非 null 值转为字符串
-      .getOrElse("") // null 值返回空字符串(或其他默认值)
+    val mid = Option(record.getString(midIndex))
+      .getOrElse("")
 
-    // 5. 将 Record 转换为 Map[String, String](跳过 mid 字段)
     val recordMap = columns.zipWithIndex
       .map { case (column, index) =>
         // 获取字段值,保留 null(不转换为空字符串)
-        val value: String = record.get(index) match {
+        val value: String = record.getString(index) match {
           case null => null // 保留 null 值
-          case value => value.toString // 非 null 值转换为字符串
+          case value => value // 非 null 值转换为字符串
         }
-
         column.getName -> value
       }
       .toMap