|
@@ -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
|