xueyiming il y a 2 mois
Parent
commit
2c0e1636f9

+ 1515 - 1515
src/main/scala/com/aliyun/odps/spark/examples/makedata_ad/v20240718/makedata_ad_32_bucket_hive_20240718.scala

@@ -1,1515 +1,1515 @@
-package com.aliyun.odps.spark.examples.makedata_ad.v20240718
-
-import com.alibaba.fastjson.JSON
-import com.aliyun.odps.spark.examples.myUtils.ParamUtils
-import org.apache.spark.sql.types.{DoubleType, LongType, StringType, StructField, StructType}
-import org.apache.spark.sql.{Row, SparkSession}
-
-import scala.collection.JavaConversions._
-import scala.collection.mutable.ArrayBuffer
-import scala.io.Source
-
-/*
-
- */
-
-object makedata_ad_32_bucket_hive_20240718 {
-  def main(args: Array[String]): Unit = {
-
-    val spark = SparkSession
-      .builder()
-      .appName(this.getClass.getName)
-      .getOrCreate()
-    val sc = spark.sparkContext
-
-    // 1 读取参数
-    val param = ParamUtils.parseArgs(args)
-    val readPath = param.getOrElse("readPath", "/dw/recommend/model/31_ad_sample_data/20240620*")
-    val sampleRate = param.getOrElse("sampleRate", "1.0").toDouble
-    val bucketNum = param.getOrElse("bucketNum", "100").toInt
-    val featureNameFile = param.getOrElse("featureNameFile", "20240718_ad_feature_name.txt");
-    val table = param.getOrElse("table", "ad_easyrec_train_data_v1")
-
-    val loader = getClass.getClassLoader
-    val resourceUrl = loader.getResource(featureNameFile)
-    val content =
-      if (resourceUrl != null) {
-        val content = Source.fromURL(resourceUrl).getLines().mkString("\n")
-        Source.fromURL(resourceUrl).close()
-        content
-      } else {
-        ""
-      }
-    println(content)
-    val contentList = content.split("\n")
-      .map(r => r.replace(" ", "").replaceAll("\n", ""))
-      .filter(r => r.nonEmpty).toList
-
-
-    val data = sc.textFile(readPath)
-    println("问题数据数量:" + data.filter(r => r.split("\t").length != 3).count())
-    val data1 = data.map(r => {
-      val rList = r.split("\t")
-      val jsons = JSON.parseObject(rList(2))
-      val doubles = scala.collection.mutable.Map[String, Double]()
-      jsons.foreach(r => {
-        doubles.put(r._1, jsons.getDoubleValue(r._1))
-      })
-      doubles
-    }).sample(false, sampleRate).repartition(20)
-
-    val result = new ArrayBuffer[String]()
-
-    for (i <- contentList.indices) {
-      println("特征:" + contentList(i))
-      val data2 = data1.map(r => r.getOrDefault(contentList(i), 0D)).filter(_ > 1E-8).collect().sorted
-      val len = data2.length
-      if (len == 0) {
-        result.add(contentList(i) + "\t" + bucketNum.toString + "\t" + "0")
-      } else {
-        val oneBucketNum = (len - 1) / (bucketNum - 1) + 1 // 确保每个桶至少有一个元素
-        val buffers = new ArrayBuffer[Double]()
-
-        var lastBucketValue = data2(0) // 记录上一个桶的切分点
-        for (j <- 0 until len by oneBucketNum) {
-          val d = data2(j)
-          if (j > 0 && d != lastBucketValue) {
-            // 如果当前切分点不同于上一个切分点,则保存当前切分点
-            buffers += d
-          }
-          lastBucketValue = d // 更新上一个桶的切分点
-        }
-
-        // 最后一个桶的结束点应该是数组的最后一个元素
-        if (!buffers.contains(data2.last)) {
-          buffers += data2.last
-        }
-        result.add(contentList(i) + "\t" + bucketNum.toString + "\t" + buffers.mkString(","))
-      }
-    }
-
-    val rows = new ArrayBuffer[Row]()
-    // 使用 for 循环遍历
-    for (element <- result) {
-      val map = processString(element)
-      rows.add(Row(
-        map.getOrElse("has_click", null).asInstanceOf[Long],
-        map.getOrElse("has_conversion", null).asInstanceOf[Long],
-        map.getOrElse("b8_yesterday_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b8_yesterday_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_yesterday_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_yesterday_conver", null).asInstanceOf[Double],
-        map.getOrElse("b8_yesterday_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b8_yesterday_click", null).asInstanceOf[Double],
-        map.getOrElse("b8_yesterday_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_yesterday_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_1h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b9_1h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_1h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_1h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b9_1h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b9_1h_click", null).asInstanceOf[Double],
-        map.getOrElse("b9_1h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b9_1h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_2h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b9_2h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_2h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_2h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b9_2h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b9_2h_click", null).asInstanceOf[Double],
-        map.getOrElse("b9_2h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b9_2h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_3h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b9_3h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_3h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_3h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b9_3h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b9_3h_click", null).asInstanceOf[Double],
-        map.getOrElse("b9_3h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b9_3h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_4h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b9_4h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_4h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_4h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b9_4h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b9_4h_click", null).asInstanceOf[Double],
-        map.getOrElse("b9_4h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b9_4h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_5h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b9_5h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_5h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b7_14d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b7_14d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b7_14d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b7_14d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b7_14d_click", null).asInstanceOf[Double],
-        map.getOrElse("b7_14d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b7_14d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("viewall", null).asInstanceOf[Double],
-        map.getOrElse("clickall", null).asInstanceOf[Double],
-        map.getOrElse("converall", null).asInstanceOf[Double],
-        map.getOrElse("incomeall", null).asInstanceOf[Double],
-        map.getOrElse("ctr_all", null).asInstanceOf[Double],
-        map.getOrElse("ctcvr_all", null).asInstanceOf[Double],
-        map.getOrElse("cvr_all", null).asInstanceOf[Double],
-        map.getOrElse("ecpm_all", null).asInstanceOf[Double],
-        map.getOrElse("timediff_view", null).asInstanceOf[Double],
-        map.getOrElse("timediff_click", null).asInstanceOf[Double],
-        map.getOrElse("timediff_conver", null).asInstanceOf[Double],
-        map.getOrElse("actionstatic_view", null).asInstanceOf[Double],
-        map.getOrElse("actionstatic_click", null).asInstanceOf[Double],
-        map.getOrElse("actionstatic_conver", null).asInstanceOf[Double],
-        map.getOrElse("actionstatic_income", null).asInstanceOf[Double],
-        map.getOrElse("actionstatic_ctr", null).asInstanceOf[Double],
-        map.getOrElse("actionstatic_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("actionstatic_cvr", null).asInstanceOf[Double],
-        map.getOrElse("e1_tags_3d_matchnum", null).asInstanceOf[Double],
-        map.getOrElse("e1_tags_3d_maxscore", null).asInstanceOf[Double],
-        map.getOrElse("e1_tags_3d_avgscore", null).asInstanceOf[Double],
-        map.getOrElse("e1_tags_7d_matchnum", null).asInstanceOf[Double],
-        map.getOrElse("e1_tags_7d_maxscore", null).asInstanceOf[Double],
-        map.getOrElse("e1_tags_7d_avgscore", null).asInstanceOf[Double],
-        map.getOrElse("e1_tags_14d_matchnum", null).asInstanceOf[Double],
-        map.getOrElse("e1_tags_14d_maxscore", null).asInstanceOf[Double],
-        map.getOrElse("e1_tags_14d_avgscore", null).asInstanceOf[Double],
-        map.getOrElse("e2_tags_3d_matchnum", null).asInstanceOf[Double],
-        map.getOrElse("e2_tags_3d_maxscore", null).asInstanceOf[Double],
-        map.getOrElse("e2_tags_3d_avgscore", null).asInstanceOf[Double],
-        map.getOrElse("e2_tags_7d_matchnum", null).asInstanceOf[Double],
-        map.getOrElse("e2_tags_7d_maxscore", null).asInstanceOf[Double],
-        map.getOrElse("e2_tags_7d_avgscore", null).asInstanceOf[Double],
-        map.getOrElse("e2_tags_14d_matchnum", null).asInstanceOf[Double],
-        map.getOrElse("e2_tags_14d_maxscore", null).asInstanceOf[Double],
-        map.getOrElse("e2_tags_14d_avgscore", null).asInstanceOf[Double],
-        map.getOrElse("b8_1h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_1h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b8_1h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b8_1h_click", null).asInstanceOf[Double],
-        map.getOrElse("b8_1h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_1h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_2h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b8_2h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_2h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_2h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b8_2h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b8_2h_click", null).asInstanceOf[Double],
-        map.getOrElse("b8_2h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_2h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_3h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b8_3h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_3h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_3h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b8_3h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b8_3h_click", null).asInstanceOf[Double],
-        map.getOrElse("b8_3h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_3h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_4h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b8_4h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_4h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_4h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b8_4h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b8_4h_click", null).asInstanceOf[Double],
-        map.getOrElse("b8_4h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_4h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_5h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b8_5h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_5h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_5h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b8_5h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b8_5h_click", null).asInstanceOf[Double],
-        map.getOrElse("b8_5h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_5h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_6h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b8_6h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_6h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_6h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b8_6h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_3d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_3d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_3d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b4_3d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_3d_click", null).asInstanceOf[Double],
-        map.getOrElse("b4_3d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b4_3d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_7d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b4_7d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_7d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_7d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b4_7d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_7d_click", null).asInstanceOf[Double],
-        map.getOrElse("b4_7d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b4_7d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_today_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b4_today_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_today_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_today_conver", null).asInstanceOf[Double],
-        map.getOrElse("b4_today_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_today_click", null).asInstanceOf[Double],
-        map.getOrElse("b4_today_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b4_today_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_yesterday_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b4_yesterday_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_yesterday_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_yesterday_conver", null).asInstanceOf[Double],
-        map.getOrElse("b4_yesterday_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_yesterday_click", null).asInstanceOf[Double],
-        map.getOrElse("b4_yesterday_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b4_yesterday_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_1h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_1h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_1h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_1h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b5_1h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b5_1h_click", null).asInstanceOf[Double],
-        map.getOrElse("b5_1h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b5_1h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_2h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_2h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_2h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_2h_conver", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_3h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_3h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_3h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_3h_conver", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_3h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_6h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_6h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_6h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_6h_conver", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_6h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_12h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_12h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_12h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_12h_conver", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_12h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_1d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_1d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_1d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_1d_conver", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_1d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_3d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_3d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_3d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_3d_conver", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_3d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_7d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_7d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_7d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_7d_conver", null).asInstanceOf[Double],
-        map.getOrElse("d1_feature_7d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("vid_rank_ctr_1d", null).asInstanceOf[Double],
-        map.getOrElse("vid_rank_ctr_3d", null).asInstanceOf[Double],
-        map.getOrElse("vid_rank_ctr_7d", null).asInstanceOf[Double],
-        map.getOrElse("vid_rank_ctr_14d", null).asInstanceOf[Double],
-        map.getOrElse("vid_rank_ctcvr_1d", null).asInstanceOf[Double],
-        map.getOrElse("vid_rank_ctcvr_3d", null).asInstanceOf[Double],
-        map.getOrElse("vid_rank_ctcvr_7d", null).asInstanceOf[Double],
-        map.getOrElse("vid_rank_ctcvr_14d", null).asInstanceOf[Double],
-        map.getOrElse("vid_rank_ecpm_1d", null).asInstanceOf[Double],
-        map.getOrElse("vid_rank_ecpm_3d", null).asInstanceOf[Double],
-        map.getOrElse("vid_rank_ecpm_7d", null).asInstanceOf[Double],
-        map.getOrElse("vid_rank_ecpm_14d", null).asInstanceOf[Double],
-        map.getOrElse("ctitle_vtitle_similarity", null).asInstanceOf[Double],
-        map.getOrElse("b5_2h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b5_2h_click", null).asInstanceOf[Double],
-        map.getOrElse("b5_2h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b5_2h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_3h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_3h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_3h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_3h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b5_3h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b5_3h_click", null).asInstanceOf[Double],
-        map.getOrElse("b5_3h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b5_3h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_4h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_4h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_4h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_4h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b5_4h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b5_4h_click", null).asInstanceOf[Double],
-        map.getOrElse("b5_4h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b5_4h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_5h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_5h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_5h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_5h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b5_5h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b5_5h_click", null).asInstanceOf[Double],
-        map.getOrElse("b5_5h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b5_5h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_6h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_6h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_6h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_6h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b5_6h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b5_6h_click", null).asInstanceOf[Double],
-        map.getOrElse("b5_6h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b5_6h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_12h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_12h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_12h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_12h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b5_12h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b5_12h_click", null).asInstanceOf[Double],
-        map.getOrElse("b5_12h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_6h_click", null).asInstanceOf[Double],
-        map.getOrElse("b8_6h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_6h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_12h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b8_12h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_12h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_12h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b8_12h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b8_12h_click", null).asInstanceOf[Double],
-        map.getOrElse("b8_12h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_12h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_1d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b8_1d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_1d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_1d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b8_1d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b8_1d_click", null).asInstanceOf[Double],
-        map.getOrElse("b8_1d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_1d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_3d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b8_3d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_3d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_3d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b8_3d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b8_3d_click", null).asInstanceOf[Double],
-        map.getOrElse("b8_3d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_3d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_7d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b8_7d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_7d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_7d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b8_7d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b8_7d_click", null).asInstanceOf[Double],
-        map.getOrElse("b8_7d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_7d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_today_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b8_today_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_today_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_today_conver", null).asInstanceOf[Double],
-        map.getOrElse("b8_today_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b8_today_click", null).asInstanceOf[Double],
-        map.getOrElse("b8_today_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b8_today_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_today_click", null).asInstanceOf[Double],
-        map.getOrElse("b2_today_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b2_today_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_yesterday_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_yesterday_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_yesterday_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_yesterday_conver", null).asInstanceOf[Double],
-        map.getOrElse("b2_yesterday_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b2_yesterday_click", null).asInstanceOf[Double],
-        map.getOrElse("b2_yesterday_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b2_yesterday_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_1h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b3_1h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_1h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_1h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b3_1h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b3_1h_click", null).asInstanceOf[Double],
-        map.getOrElse("b3_1h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b3_1h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_2h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b3_2h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_2h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_2h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b3_2h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b3_2h_click", null).asInstanceOf[Double],
-        map.getOrElse("b3_2h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b3_2h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_3h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b3_3h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_3h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_3h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b3_3h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b3_3h_click", null).asInstanceOf[Double],
-        map.getOrElse("b3_3h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b3_3h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_4h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b3_4h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_4h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_4h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b3_4h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b3_4h_click", null).asInstanceOf[Double],
-        map.getOrElse("b3_4h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b3_4h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_5h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b3_5h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_5h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_5h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b3_5h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b3_5h_click", null).asInstanceOf[Double],
-        map.getOrElse("b3_5h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b3_5h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_6h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b3_6h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_6h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_6h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b3_6h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b3_6h_click", null).asInstanceOf[Double],
-        map.getOrElse("b3_6h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b3_6h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_12h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b3_12h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_12h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_12h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b3_12h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b3_12h_click", null).asInstanceOf[Double],
-        map.getOrElse("b3_12h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b3_12h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_1d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b3_1d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_1d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_1d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b3_1d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b3_1d_click", null).asInstanceOf[Double],
-        map.getOrElse("b3_1d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b3_1d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_3d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b3_3d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_3d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_3d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b3_3d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b3_3d_click", null).asInstanceOf[Double],
-        map.getOrElse("b3_3d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b3_3d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_7d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b3_7d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_7d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_7d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b3_7d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b3_7d_click", null).asInstanceOf[Double],
-        map.getOrElse("b3_7d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b3_7d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_today_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b3_today_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_today_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_today_conver", null).asInstanceOf[Double],
-        map.getOrElse("b3_today_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b3_today_click", null).asInstanceOf[Double],
-        map.getOrElse("b3_today_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b3_today_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_yesterday_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b3_yesterday_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_yesterday_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b3_yesterday_conver", null).asInstanceOf[Double],
-        map.getOrElse("b3_yesterday_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b3_yesterday_click", null).asInstanceOf[Double],
-        map.getOrElse("b3_yesterday_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b3_yesterday_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_1h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b4_1h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_1h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_1h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b4_1h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_1h_click", null).asInstanceOf[Double],
-        map.getOrElse("b4_1h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b4_1h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_2h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b4_2h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_2h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_2h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b4_2h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_2h_click", null).asInstanceOf[Double],
-        map.getOrElse("b4_2h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b4_2h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_3h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b4_3h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_3h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_3h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b4_3h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_3h_click", null).asInstanceOf[Double],
-        map.getOrElse("b9_7d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b9_7d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_today_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b9_today_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_today_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_today_conver", null).asInstanceOf[Double],
-        map.getOrElse("b9_today_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b9_today_click", null).asInstanceOf[Double],
-        map.getOrElse("b9_today_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b9_today_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_yesterday_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b9_yesterday_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_yesterday_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_yesterday_conver", null).asInstanceOf[Double],
-        map.getOrElse("b9_yesterday_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b9_yesterday_click", null).asInstanceOf[Double],
-        map.getOrElse("b9_yesterday_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b9_yesterday_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b6_7d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b6_7d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b6_7d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b6_7d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b6_7d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b6_7d_click", null).asInstanceOf[Double],
-        map.getOrElse("b6_7d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b6_7d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b6_14d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b6_14d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b6_14d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b6_14d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b6_14d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b6_14d_click", null).asInstanceOf[Double],
-        map.getOrElse("b6_14d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b6_14d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b7_7d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b7_7d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b7_7d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b7_7d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b7_7d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b7_7d_click", null).asInstanceOf[Double],
-        map.getOrElse("b7_7d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b7_7d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b7_14d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_12h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_1d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_1d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_1d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_1d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b5_1d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b5_1d_click", null).asInstanceOf[Double],
-        map.getOrElse("b5_1d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b5_1d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_3d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_3d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_3d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_3d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b5_3d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b5_3d_click", null).asInstanceOf[Double],
-        map.getOrElse("b5_3d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b5_3d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_7d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_7d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_7d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_7d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b5_7d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b5_7d_click", null).asInstanceOf[Double],
-        map.getOrElse("b5_7d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b5_7d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_today_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_today_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_today_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_today_conver", null).asInstanceOf[Double],
-        map.getOrElse("b5_today_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b5_today_click", null).asInstanceOf[Double],
-        map.getOrElse("b5_today_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b5_today_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_yesterday_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b5_yesterday_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_yesterday_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b5_yesterday_conver", null).asInstanceOf[Double],
-        map.getOrElse("b5_yesterday_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b5_yesterday_click", null).asInstanceOf[Double],
-        map.getOrElse("b5_yesterday_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b5_yesterday_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b8_1h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b8_1h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_3h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b4_3h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_4h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b4_4h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_4h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_4h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b4_4h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_4h_click", null).asInstanceOf[Double],
-        map.getOrElse("b4_4h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b4_4h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_5h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b4_5h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_5h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_5h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b4_5h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_5h_click", null).asInstanceOf[Double],
-        map.getOrElse("b4_5h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b4_5h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_6h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b4_6h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_6h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_6h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b4_6h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_6h_click", null).asInstanceOf[Double],
-        map.getOrElse("b4_6h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b4_6h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_12h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b4_12h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_12h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_12h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b4_12h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_12h_click", null).asInstanceOf[Double],
-        map.getOrElse("b4_12h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b4_12h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_1d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b4_1d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_1d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_1d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b4_1d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b4_1d_click", null).asInstanceOf[Double],
-        map.getOrElse("b4_1d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b4_1d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b4_3d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_6h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_6h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b2_6h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b2_6h_click", null).asInstanceOf[Double],
-        map.getOrElse("b2_6h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b2_6h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_12h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_12h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_12h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_12h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b2_12h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b2_12h_click", null).asInstanceOf[Double],
-        map.getOrElse("b2_12h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b2_12h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_1d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_1d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_1d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_1d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b2_1d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b2_1d_click", null).asInstanceOf[Double],
-        map.getOrElse("b2_1d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b2_1d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_3d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_3d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_3d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_3d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b2_3d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b2_3d_click", null).asInstanceOf[Double],
-        map.getOrElse("b2_3d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b2_3d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_7d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_7d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_7d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_7d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b2_7d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b2_7d_click", null).asInstanceOf[Double],
-        map.getOrElse("b2_7d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b2_7d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_today_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_today_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_today_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_today_conver", null).asInstanceOf[Double],
-        map.getOrElse("b2_today_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("cpa", null).asInstanceOf[Double],
-        map.getOrElse("b2_1h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_1h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_1h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_1h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b2_1h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b2_1h_click", null).asInstanceOf[Double],
-        map.getOrElse("b2_1h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b2_1h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_2h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_2h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_2h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_2h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b2_2h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b2_2h_click", null).asInstanceOf[Double],
-        map.getOrElse("b2_2h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b2_2h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_3h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_3h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_3h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_3h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b2_3h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b2_3h_click", null).asInstanceOf[Double],
-        map.getOrElse("b2_3h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b2_3h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_4h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_4h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_4h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_4h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b2_4h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b2_4h_click", null).asInstanceOf[Double],
-        map.getOrElse("b2_4h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b2_4h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_5h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_5h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_5h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_5h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b2_5h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b2_5h_click", null).asInstanceOf[Double],
-        map.getOrElse("b2_5h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b2_5h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b2_6h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b2_6h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_5h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b9_5h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b9_5h_click", null).asInstanceOf[Double],
-        map.getOrElse("b9_5h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b9_5h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_6h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b9_6h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_6h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_6h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b9_6h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b9_6h_click", null).asInstanceOf[Double],
-        map.getOrElse("b9_6h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b9_6h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_12h_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b9_12h_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_12h_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_12h_conver", null).asInstanceOf[Double],
-        map.getOrElse("b9_12h_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b9_12h_click", null).asInstanceOf[Double],
-        map.getOrElse("b9_12h_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b9_12h_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_1d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b9_1d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_1d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_1d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b9_1d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b9_1d_click", null).asInstanceOf[Double],
-        map.getOrElse("b9_1d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b9_1d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_3d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b9_3d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_3d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_3d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b9_3d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b9_3d_click", null).asInstanceOf[Double],
-        map.getOrElse("b9_3d_conver_x_log_view", null).asInstanceOf[Double],
-        map.getOrElse("b9_3d_conver_x_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_7d_ctr", null).asInstanceOf[Double],
-        map.getOrElse("b9_7d_ctcvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_7d_cvr", null).asInstanceOf[Double],
-        map.getOrElse("b9_7d_conver", null).asInstanceOf[Double],
-        map.getOrElse("b9_7d_ecpm", null).asInstanceOf[Double],
-        map.getOrElse("b9_7d_click", null).asInstanceOf[Double],
-        map.getOrElse("weight", null).asInstanceOf[Double],
-        map.getOrElse("dt", "20250101").asInstanceOf[String]
-      ))
-    }
-
-    val schema = StructType(Seq(
-      StructField("has_click", LongType, true),
-      StructField("has_conversion", LongType, true),
-      StructField("b8_yesterday_ctr", DoubleType, true),
-      StructField("b8_yesterday_ctcvr", DoubleType, true),
-      StructField("b8_yesterday_cvr", DoubleType, true),
-      StructField("b8_yesterday_conver", DoubleType, true),
-      StructField("b8_yesterday_ecpm", DoubleType, true),
-      StructField("b8_yesterday_click", DoubleType, true),
-      StructField("b8_yesterday_conver_x_log_view", DoubleType, true),
-      StructField("b8_yesterday_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_1h_ctr", DoubleType, true),
-      StructField("b9_1h_ctcvr", DoubleType, true),
-      StructField("b9_1h_cvr", DoubleType, true),
-      StructField("b9_1h_conver", DoubleType, true),
-      StructField("b9_1h_ecpm", DoubleType, true),
-      StructField("b9_1h_click", DoubleType, true),
-      StructField("b9_1h_conver_x_log_view", DoubleType, true),
-      StructField("b9_1h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_2h_ctr", DoubleType, true),
-      StructField("b9_2h_ctcvr", DoubleType, true),
-      StructField("b9_2h_cvr", DoubleType, true),
-      StructField("b9_2h_conver", DoubleType, true),
-      StructField("b9_2h_ecpm", DoubleType, true),
-      StructField("b9_2h_click", DoubleType, true),
-      StructField("b9_2h_conver_x_log_view", DoubleType, true),
-      StructField("b9_2h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_3h_ctr", DoubleType, true),
-      StructField("b9_3h_ctcvr", DoubleType, true),
-      StructField("b9_3h_cvr", DoubleType, true),
-      StructField("b9_3h_conver", DoubleType, true),
-      StructField("b9_3h_ecpm", DoubleType, true),
-      StructField("b9_3h_click", DoubleType, true),
-      StructField("b9_3h_conver_x_log_view", DoubleType, true),
-      StructField("b9_3h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_4h_ctr", DoubleType, true),
-      StructField("b9_4h_ctcvr", DoubleType, true),
-      StructField("b9_4h_cvr", DoubleType, true),
-      StructField("b9_4h_conver", DoubleType, true),
-      StructField("b9_4h_ecpm", DoubleType, true),
-      StructField("b9_4h_click", DoubleType, true),
-      StructField("b9_4h_conver_x_log_view", DoubleType, true),
-      StructField("b9_4h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_5h_ctr", DoubleType, true),
-      StructField("b9_5h_ctcvr", DoubleType, true),
-      StructField("b9_5h_cvr", DoubleType, true),
-      StructField("b7_14d_ctcvr", DoubleType, true),
-      StructField("b7_14d_cvr", DoubleType, true),
-      StructField("b7_14d_conver", DoubleType, true),
-      StructField("b7_14d_ecpm", DoubleType, true),
-      StructField("b7_14d_click", DoubleType, true),
-      StructField("b7_14d_conver_x_log_view", DoubleType, true),
-      StructField("b7_14d_conver_x_ctcvr", DoubleType, true),
-      StructField("viewall", DoubleType, true),
-      StructField("clickall", DoubleType, true),
-      StructField("converall", DoubleType, true),
-      StructField("incomeall", DoubleType, true),
-      StructField("ctr_all", DoubleType, true),
-      StructField("ctcvr_all", DoubleType, true),
-      StructField("cvr_all", DoubleType, true),
-      StructField("ecpm_all", DoubleType, true),
-      StructField("timediff_view", DoubleType, true),
-      StructField("timediff_click", DoubleType, true),
-      StructField("timediff_conver", DoubleType, true),
-      StructField("actionstatic_view", DoubleType, true),
-      StructField("actionstatic_click", DoubleType, true),
-      StructField("actionstatic_conver", DoubleType, true),
-      StructField("actionstatic_income", DoubleType, true),
-      StructField("actionstatic_ctr", DoubleType, true),
-      StructField("actionstatic_ctcvr", DoubleType, true),
-      StructField("actionstatic_cvr", DoubleType, true),
-      StructField("e1_tags_3d_matchnum", DoubleType, true),
-      StructField("e1_tags_3d_maxscore", DoubleType, true),
-      StructField("e1_tags_3d_avgscore", DoubleType, true),
-      StructField("e1_tags_7d_matchnum", DoubleType, true),
-      StructField("e1_tags_7d_maxscore", DoubleType, true),
-      StructField("e1_tags_7d_avgscore", DoubleType, true),
-      StructField("e1_tags_14d_matchnum", DoubleType, true),
-      StructField("e1_tags_14d_maxscore", DoubleType, true),
-      StructField("e1_tags_14d_avgscore", DoubleType, true),
-      StructField("e2_tags_3d_matchnum", DoubleType, true),
-      StructField("e2_tags_3d_maxscore", DoubleType, true),
-      StructField("e2_tags_3d_avgscore", DoubleType, true),
-      StructField("e2_tags_7d_matchnum", DoubleType, true),
-      StructField("e2_tags_7d_maxscore", DoubleType, true),
-      StructField("e2_tags_7d_avgscore", DoubleType, true),
-      StructField("e2_tags_14d_matchnum", DoubleType, true),
-      StructField("e2_tags_14d_maxscore", DoubleType, true),
-      StructField("e2_tags_14d_avgscore", DoubleType, true),
-      StructField("b8_1h_cvr", DoubleType, true),
-      StructField("b8_1h_conver", DoubleType, true),
-      StructField("b8_1h_ecpm", DoubleType, true),
-      StructField("b8_1h_click", DoubleType, true),
-      StructField("b8_1h_conver_x_log_view", DoubleType, true),
-      StructField("b8_1h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_2h_ctr", DoubleType, true),
-      StructField("b8_2h_ctcvr", DoubleType, true),
-      StructField("b8_2h_cvr", DoubleType, true),
-      StructField("b8_2h_conver", DoubleType, true),
-      StructField("b8_2h_ecpm", DoubleType, true),
-      StructField("b8_2h_click", DoubleType, true),
-      StructField("b8_2h_conver_x_log_view", DoubleType, true),
-      StructField("b8_2h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_3h_ctr", DoubleType, true),
-      StructField("b8_3h_ctcvr", DoubleType, true),
-      StructField("b8_3h_cvr", DoubleType, true),
-      StructField("b8_3h_conver", DoubleType, true),
-      StructField("b8_3h_ecpm", DoubleType, true),
-      StructField("b8_3h_click", DoubleType, true),
-      StructField("b8_3h_conver_x_log_view", DoubleType, true),
-      StructField("b8_3h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_4h_ctr", DoubleType, true),
-      StructField("b8_4h_ctcvr", DoubleType, true),
-      StructField("b8_4h_cvr", DoubleType, true),
-      StructField("b8_4h_conver", DoubleType, true),
-      StructField("b8_4h_ecpm", DoubleType, true),
-      StructField("b8_4h_click", DoubleType, true),
-      StructField("b8_4h_conver_x_log_view", DoubleType, true),
-      StructField("b8_4h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_5h_ctr", DoubleType, true),
-      StructField("b8_5h_ctcvr", DoubleType, true),
-      StructField("b8_5h_cvr", DoubleType, true),
-      StructField("b8_5h_conver", DoubleType, true),
-      StructField("b8_5h_ecpm", DoubleType, true),
-      StructField("b8_5h_click", DoubleType, true),
-      StructField("b8_5h_conver_x_log_view", DoubleType, true),
-      StructField("b8_5h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_6h_ctr", DoubleType, true),
-      StructField("b8_6h_ctcvr", DoubleType, true),
-      StructField("b8_6h_cvr", DoubleType, true),
-      StructField("b8_6h_conver", DoubleType, true),
-      StructField("b8_6h_ecpm", DoubleType, true),
-      StructField("b4_3d_ctcvr", DoubleType, true),
-      StructField("b4_3d_cvr", DoubleType, true),
-      StructField("b4_3d_conver", DoubleType, true),
-      StructField("b4_3d_ecpm", DoubleType, true),
-      StructField("b4_3d_click", DoubleType, true),
-      StructField("b4_3d_conver_x_log_view", DoubleType, true),
-      StructField("b4_3d_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_7d_ctr", DoubleType, true),
-      StructField("b4_7d_ctcvr", DoubleType, true),
-      StructField("b4_7d_cvr", DoubleType, true),
-      StructField("b4_7d_conver", DoubleType, true),
-      StructField("b4_7d_ecpm", DoubleType, true),
-      StructField("b4_7d_click", DoubleType, true),
-      StructField("b4_7d_conver_x_log_view", DoubleType, true),
-      StructField("b4_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_today_ctr", DoubleType, true),
-      StructField("b4_today_ctcvr", DoubleType, true),
-      StructField("b4_today_cvr", DoubleType, true),
-      StructField("b4_today_conver", DoubleType, true),
-      StructField("b4_today_ecpm", DoubleType, true),
-      StructField("b4_today_click", DoubleType, true),
-      StructField("b4_today_conver_x_log_view", DoubleType, true),
-      StructField("b4_today_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_yesterday_ctr", DoubleType, true),
-      StructField("b4_yesterday_ctcvr", DoubleType, true),
-      StructField("b4_yesterday_cvr", DoubleType, true),
-      StructField("b4_yesterday_conver", DoubleType, true),
-      StructField("b4_yesterday_ecpm", DoubleType, true),
-      StructField("b4_yesterday_click", DoubleType, true),
-      StructField("b4_yesterday_conver_x_log_view", DoubleType, true),
-      StructField("b4_yesterday_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_1h_ctr", DoubleType, true),
-      StructField("b5_1h_ctcvr", DoubleType, true),
-      StructField("b5_1h_cvr", DoubleType, true),
-      StructField("b5_1h_conver", DoubleType, true),
-      StructField("b5_1h_ecpm", DoubleType, true),
-      StructField("b5_1h_click", DoubleType, true),
-      StructField("b5_1h_conver_x_log_view", DoubleType, true),
-      StructField("b5_1h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_2h_ctr", DoubleType, true),
-      StructField("b5_2h_ctcvr", DoubleType, true),
-      StructField("b5_2h_cvr", DoubleType, true),
-      StructField("b5_2h_conver", DoubleType, true),
-      StructField("d1_feature_3h_ctr", DoubleType, true),
-      StructField("d1_feature_3h_ctcvr", DoubleType, true),
-      StructField("d1_feature_3h_cvr", DoubleType, true),
-      StructField("d1_feature_3h_conver", DoubleType, true),
-      StructField("d1_feature_3h_ecpm", DoubleType, true),
-      StructField("d1_feature_6h_ctr", DoubleType, true),
-      StructField("d1_feature_6h_ctcvr", DoubleType, true),
-      StructField("d1_feature_6h_cvr", DoubleType, true),
-      StructField("d1_feature_6h_conver", DoubleType, true),
-      StructField("d1_feature_6h_ecpm", DoubleType, true),
-      StructField("d1_feature_12h_ctr", DoubleType, true),
-      StructField("d1_feature_12h_ctcvr", DoubleType, true),
-      StructField("d1_feature_12h_cvr", DoubleType, true),
-      StructField("d1_feature_12h_conver", DoubleType, true),
-      StructField("d1_feature_12h_ecpm", DoubleType, true),
-      StructField("d1_feature_1d_ctr", DoubleType, true),
-      StructField("d1_feature_1d_ctcvr", DoubleType, true),
-      StructField("d1_feature_1d_cvr", DoubleType, true),
-      StructField("d1_feature_1d_conver", DoubleType, true),
-      StructField("d1_feature_1d_ecpm", DoubleType, true),
-      StructField("d1_feature_3d_ctr", DoubleType, true),
-      StructField("d1_feature_3d_ctcvr", DoubleType, true),
-      StructField("d1_feature_3d_cvr", DoubleType, true),
-      StructField("d1_feature_3d_conver", DoubleType, true),
-      StructField("d1_feature_3d_ecpm", DoubleType, true),
-      StructField("d1_feature_7d_ctr", DoubleType, true),
-      StructField("d1_feature_7d_ctcvr", DoubleType, true),
-      StructField("d1_feature_7d_cvr", DoubleType, true),
-      StructField("d1_feature_7d_conver", DoubleType, true),
-      StructField("d1_feature_7d_ecpm", DoubleType, true),
-      StructField("vid_rank_ctr_1d", DoubleType, true),
-      StructField("vid_rank_ctr_3d", DoubleType, true),
-      StructField("vid_rank_ctr_7d", DoubleType, true),
-      StructField("vid_rank_ctr_14d", DoubleType, true),
-      StructField("vid_rank_ctcvr_1d", DoubleType, true),
-      StructField("vid_rank_ctcvr_3d", DoubleType, true),
-      StructField("vid_rank_ctcvr_7d", DoubleType, true),
-      StructField("vid_rank_ctcvr_14d", DoubleType, true),
-      StructField("vid_rank_ecpm_1d", DoubleType, true),
-      StructField("vid_rank_ecpm_3d", DoubleType, true),
-      StructField("vid_rank_ecpm_7d", DoubleType, true),
-      StructField("vid_rank_ecpm_14d", DoubleType, true),
-      StructField("ctitle_vtitle_similarity", DoubleType, true),
-      StructField("b5_2h_ecpm", DoubleType, true),
-      StructField("b5_2h_click", DoubleType, true),
-      StructField("b5_2h_conver_x_log_view", DoubleType, true),
-      StructField("b5_2h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_3h_ctr", DoubleType, true),
-      StructField("b5_3h_ctcvr", DoubleType, true),
-      StructField("b5_3h_cvr", DoubleType, true),
-      StructField("b5_3h_conver", DoubleType, true),
-      StructField("b5_3h_ecpm", DoubleType, true),
-      StructField("b5_3h_click", DoubleType, true),
-      StructField("b5_3h_conver_x_log_view", DoubleType, true),
-      StructField("b5_3h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_4h_ctr", DoubleType, true),
-      StructField("b5_4h_ctcvr", DoubleType, true),
-      StructField("b5_4h_cvr", DoubleType, true),
-      StructField("b5_4h_conver", DoubleType, true),
-      StructField("b5_4h_ecpm", DoubleType, true),
-      StructField("b5_4h_click", DoubleType, true),
-      StructField("b5_4h_conver_x_log_view", DoubleType, true),
-      StructField("b5_4h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_5h_ctr", DoubleType, true),
-      StructField("b5_5h_ctcvr", DoubleType, true),
-      StructField("b5_5h_cvr", DoubleType, true),
-      StructField("b5_5h_conver", DoubleType, true),
-      StructField("b5_5h_ecpm", DoubleType, true),
-      StructField("b5_5h_click", DoubleType, true),
-      StructField("b5_5h_conver_x_log_view", DoubleType, true),
-      StructField("b5_5h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_6h_ctr", DoubleType, true),
-      StructField("b5_6h_ctcvr", DoubleType, true),
-      StructField("b5_6h_cvr", DoubleType, true),
-      StructField("b5_6h_conver", DoubleType, true),
-      StructField("b5_6h_ecpm", DoubleType, true),
-      StructField("b5_6h_click", DoubleType, true),
-      StructField("b5_6h_conver_x_log_view", DoubleType, true),
-      StructField("b5_6h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_12h_ctr", DoubleType, true),
-      StructField("b5_12h_ctcvr", DoubleType, true),
-      StructField("b5_12h_cvr", DoubleType, true),
-      StructField("b5_12h_conver", DoubleType, true),
-      StructField("b5_12h_ecpm", DoubleType, true),
-      StructField("b5_12h_click", DoubleType, true),
-      StructField("b5_12h_conver_x_log_view", DoubleType, true),
-      StructField("b8_6h_click", DoubleType, true),
-      StructField("b8_6h_conver_x_log_view", DoubleType, true),
-      StructField("b8_6h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_12h_ctr", DoubleType, true),
-      StructField("b8_12h_ctcvr", DoubleType, true),
-      StructField("b8_12h_cvr", DoubleType, true),
-      StructField("b8_12h_conver", DoubleType, true),
-      StructField("b8_12h_ecpm", DoubleType, true),
-      StructField("b8_12h_click", DoubleType, true),
-      StructField("b8_12h_conver_x_log_view", DoubleType, true),
-      StructField("b8_12h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_1d_ctr", DoubleType, true),
-      StructField("b8_1d_ctcvr", DoubleType, true),
-      StructField("b8_1d_cvr", DoubleType, true),
-      StructField("b8_1d_conver", DoubleType, true),
-      StructField("b8_1d_ecpm", DoubleType, true),
-      StructField("b8_1d_click", DoubleType, true),
-      StructField("b8_1d_conver_x_log_view", DoubleType, true),
-      StructField("b8_1d_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_3d_ctr", DoubleType, true),
-      StructField("b8_3d_ctcvr", DoubleType, true),
-      StructField("b8_3d_cvr", DoubleType, true),
-      StructField("b8_3d_conver", DoubleType, true),
-      StructField("b8_3d_ecpm", DoubleType, true),
-      StructField("b8_3d_click", DoubleType, true),
-      StructField("b8_3d_conver_x_log_view", DoubleType, true),
-      StructField("b8_3d_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_7d_ctr", DoubleType, true),
-      StructField("b8_7d_ctcvr", DoubleType, true),
-      StructField("b8_7d_cvr", DoubleType, true),
-      StructField("b8_7d_conver", DoubleType, true),
-      StructField("b8_7d_ecpm", DoubleType, true),
-      StructField("b8_7d_click", DoubleType, true),
-      StructField("b8_7d_conver_x_log_view", DoubleType, true),
-      StructField("b8_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_today_ctr", DoubleType, true),
-      StructField("b8_today_ctcvr", DoubleType, true),
-      StructField("b8_today_cvr", DoubleType, true),
-      StructField("b8_today_conver", DoubleType, true),
-      StructField("b8_today_ecpm", DoubleType, true),
-      StructField("b8_today_click", DoubleType, true),
-      StructField("b8_today_conver_x_log_view", DoubleType, true),
-      StructField("b8_today_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_today_click", DoubleType, true),
-      StructField("b2_today_conver_x_log_view", DoubleType, true),
-      StructField("b2_today_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_yesterday_ctr", DoubleType, true),
-      StructField("b2_yesterday_ctcvr", DoubleType, true),
-      StructField("b2_yesterday_cvr", DoubleType, true),
-      StructField("b2_yesterday_conver", DoubleType, true),
-      StructField("b2_yesterday_ecpm", DoubleType, true),
-      StructField("b2_yesterday_click", DoubleType, true),
-      StructField("b2_yesterday_conver_x_log_view", DoubleType, true),
-      StructField("b2_yesterday_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_1h_ctr", DoubleType, true),
-      StructField("b3_1h_ctcvr", DoubleType, true),
-      StructField("b3_1h_cvr", DoubleType, true),
-      StructField("b3_1h_conver", DoubleType, true),
-      StructField("b3_1h_ecpm", DoubleType, true),
-      StructField("b3_1h_click", DoubleType, true),
-      StructField("b3_1h_conver_x_log_view", DoubleType, true),
-      StructField("b3_1h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_2h_ctr", DoubleType, true),
-      StructField("b3_2h_ctcvr", DoubleType, true),
-      StructField("b3_2h_cvr", DoubleType, true),
-      StructField("b3_2h_conver", DoubleType, true),
-      StructField("b3_2h_ecpm", DoubleType, true),
-      StructField("b3_2h_click", DoubleType, true),
-      StructField("b3_2h_conver_x_log_view", DoubleType, true),
-      StructField("b3_2h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_3h_ctr", DoubleType, true),
-      StructField("b3_3h_ctcvr", DoubleType, true),
-      StructField("b3_3h_cvr", DoubleType, true),
-      StructField("b3_3h_conver", DoubleType, true),
-      StructField("b3_3h_ecpm", DoubleType, true),
-      StructField("b3_3h_click", DoubleType, true),
-      StructField("b3_3h_conver_x_log_view", DoubleType, true),
-      StructField("b3_3h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_4h_ctr", DoubleType, true),
-      StructField("b3_4h_ctcvr", DoubleType, true),
-      StructField("b3_4h_cvr", DoubleType, true),
-      StructField("b3_4h_conver", DoubleType, true),
-      StructField("b3_4h_ecpm", DoubleType, true),
-      StructField("b3_4h_click", DoubleType, true),
-      StructField("b3_4h_conver_x_log_view", DoubleType, true),
-      StructField("b3_4h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_5h_ctr", DoubleType, true),
-      StructField("b3_5h_ctcvr", DoubleType, true),
-      StructField("b3_5h_cvr", DoubleType, true),
-      StructField("b3_5h_conver", DoubleType, true),
-      StructField("b3_5h_ecpm", DoubleType, true),
-      StructField("b3_5h_click", DoubleType, true),
-      StructField("b3_5h_conver_x_log_view", DoubleType, true),
-      StructField("b3_5h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_6h_ctr", DoubleType, true),
-      StructField("b3_6h_ctcvr", DoubleType, true),
-      StructField("b3_6h_cvr", DoubleType, true),
-      StructField("b3_6h_conver", DoubleType, true),
-      StructField("b3_6h_ecpm", DoubleType, true),
-      StructField("b3_6h_click", DoubleType, true),
-      StructField("b3_6h_conver_x_log_view", DoubleType, true),
-      StructField("b3_6h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_12h_ctr", DoubleType, true),
-      StructField("b3_12h_ctcvr", DoubleType, true),
-      StructField("b3_12h_cvr", DoubleType, true),
-      StructField("b3_12h_conver", DoubleType, true),
-      StructField("b3_12h_ecpm", DoubleType, true),
-      StructField("b3_12h_click", DoubleType, true),
-      StructField("b3_12h_conver_x_log_view", DoubleType, true),
-      StructField("b3_12h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_1d_ctr", DoubleType, true),
-      StructField("b3_1d_ctcvr", DoubleType, true),
-      StructField("b3_1d_cvr", DoubleType, true),
-      StructField("b3_1d_conver", DoubleType, true),
-      StructField("b3_1d_ecpm", DoubleType, true),
-      StructField("b3_1d_click", DoubleType, true),
-      StructField("b3_1d_conver_x_log_view", DoubleType, true),
-      StructField("b3_1d_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_3d_ctr", DoubleType, true),
-      StructField("b3_3d_ctcvr", DoubleType, true),
-      StructField("b3_3d_cvr", DoubleType, true),
-      StructField("b3_3d_conver", DoubleType, true),
-      StructField("b3_3d_ecpm", DoubleType, true),
-      StructField("b3_3d_click", DoubleType, true),
-      StructField("b3_3d_conver_x_log_view", DoubleType, true),
-      StructField("b3_3d_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_7d_ctr", DoubleType, true),
-      StructField("b3_7d_ctcvr", DoubleType, true),
-      StructField("b3_7d_cvr", DoubleType, true),
-      StructField("b3_7d_conver", DoubleType, true),
-      StructField("b3_7d_ecpm", DoubleType, true),
-      StructField("b3_7d_click", DoubleType, true),
-      StructField("b3_7d_conver_x_log_view", DoubleType, true),
-      StructField("b3_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_today_ctr", DoubleType, true),
-      StructField("b3_today_ctcvr", DoubleType, true),
-      StructField("b3_today_cvr", DoubleType, true),
-      StructField("b3_today_conver", DoubleType, true),
-      StructField("b3_today_ecpm", DoubleType, true),
-      StructField("b3_today_click", DoubleType, true),
-      StructField("b3_today_conver_x_log_view", DoubleType, true),
-      StructField("b3_today_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_yesterday_ctr", DoubleType, true),
-      StructField("b3_yesterday_ctcvr", DoubleType, true),
-      StructField("b3_yesterday_cvr", DoubleType, true),
-      StructField("b3_yesterday_conver", DoubleType, true),
-      StructField("b3_yesterday_ecpm", DoubleType, true),
-      StructField("b3_yesterday_click", DoubleType, true),
-      StructField("b3_yesterday_conver_x_log_view", DoubleType, true),
-      StructField("b3_yesterday_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_1h_ctr", DoubleType, true),
-      StructField("b4_1h_ctcvr", DoubleType, true),
-      StructField("b4_1h_cvr", DoubleType, true),
-      StructField("b4_1h_conver", DoubleType, true),
-      StructField("b4_1h_ecpm", DoubleType, true),
-      StructField("b4_1h_click", DoubleType, true),
-      StructField("b4_1h_conver_x_log_view", DoubleType, true),
-      StructField("b4_1h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_2h_ctr", DoubleType, true),
-      StructField("b4_2h_ctcvr", DoubleType, true),
-      StructField("b4_2h_cvr", DoubleType, true),
-      StructField("b4_2h_conver", DoubleType, true),
-      StructField("b4_2h_ecpm", DoubleType, true),
-      StructField("b4_2h_click", DoubleType, true),
-      StructField("b4_2h_conver_x_log_view", DoubleType, true),
-      StructField("b4_2h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_3h_ctr", DoubleType, true),
-      StructField("b4_3h_ctcvr", DoubleType, true),
-      StructField("b4_3h_cvr", DoubleType, true),
-      StructField("b4_3h_conver", DoubleType, true),
-      StructField("b4_3h_ecpm", DoubleType, true),
-      StructField("b4_3h_click", DoubleType, true),
-      StructField("b9_7d_conver_x_log_view", DoubleType, true),
-      StructField("b9_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_today_ctr", DoubleType, true),
-      StructField("b9_today_ctcvr", DoubleType, true),
-      StructField("b9_today_cvr", DoubleType, true),
-      StructField("b9_today_conver", DoubleType, true),
-      StructField("b9_today_ecpm", DoubleType, true),
-      StructField("b9_today_click", DoubleType, true),
-      StructField("b9_today_conver_x_log_view", DoubleType, true),
-      StructField("b9_today_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_yesterday_ctr", DoubleType, true),
-      StructField("b9_yesterday_ctcvr", DoubleType, true),
-      StructField("b9_yesterday_cvr", DoubleType, true),
-      StructField("b9_yesterday_conver", DoubleType, true),
-      StructField("b9_yesterday_ecpm", DoubleType, true),
-      StructField("b9_yesterday_click", DoubleType, true),
-      StructField("b9_yesterday_conver_x_log_view", DoubleType, true),
-      StructField("b9_yesterday_conver_x_ctcvr", DoubleType, true),
-      StructField("b6_7d_ctr", DoubleType, true),
-      StructField("b6_7d_ctcvr", DoubleType, true),
-      StructField("b6_7d_cvr", DoubleType, true),
-      StructField("b6_7d_conver", DoubleType, true),
-      StructField("b6_7d_ecpm", DoubleType, true),
-      StructField("b6_7d_click", DoubleType, true),
-      StructField("b6_7d_conver_x_log_view", DoubleType, true),
-      StructField("b6_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b6_14d_ctr", DoubleType, true),
-      StructField("b6_14d_ctcvr", DoubleType, true),
-      StructField("b6_14d_cvr", DoubleType, true),
-      StructField("b6_14d_conver", DoubleType, true),
-      StructField("b6_14d_ecpm", DoubleType, true),
-      StructField("b6_14d_click", DoubleType, true),
-      StructField("b6_14d_conver_x_log_view", DoubleType, true),
-      StructField("b6_14d_conver_x_ctcvr", DoubleType, true),
-      StructField("b7_7d_ctr", DoubleType, true),
-      StructField("b7_7d_ctcvr", DoubleType, true),
-      StructField("b7_7d_cvr", DoubleType, true),
-      StructField("b7_7d_conver", DoubleType, true),
-      StructField("b7_7d_ecpm", DoubleType, true),
-      StructField("b7_7d_click", DoubleType, true),
-      StructField("b7_7d_conver_x_log_view", DoubleType, true),
-      StructField("b7_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b7_14d_ctr", DoubleType, true),
-      StructField("b5_12h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_1d_ctr", DoubleType, true),
-      StructField("b5_1d_ctcvr", DoubleType, true),
-      StructField("b5_1d_cvr", DoubleType, true),
-      StructField("b5_1d_conver", DoubleType, true),
-      StructField("b5_1d_ecpm", DoubleType, true),
-      StructField("b5_1d_click", DoubleType, true),
-      StructField("b5_1d_conver_x_log_view", DoubleType, true),
-      StructField("b5_1d_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_3d_ctr", DoubleType, true),
-      StructField("b5_3d_ctcvr", DoubleType, true),
-      StructField("b5_3d_cvr", DoubleType, true),
-      StructField("b5_3d_conver", DoubleType, true),
-      StructField("b5_3d_ecpm", DoubleType, true),
-      StructField("b5_3d_click", DoubleType, true),
-      StructField("b5_3d_conver_x_log_view", DoubleType, true),
-      StructField("b5_3d_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_7d_ctr", DoubleType, true),
-      StructField("b5_7d_ctcvr", DoubleType, true),
-      StructField("b5_7d_cvr", DoubleType, true),
-      StructField("b5_7d_conver", DoubleType, true),
-      StructField("b5_7d_ecpm", DoubleType, true),
-      StructField("b5_7d_click", DoubleType, true),
-      StructField("b5_7d_conver_x_log_view", DoubleType, true),
-      StructField("b5_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_today_ctr", DoubleType, true),
-      StructField("b5_today_ctcvr", DoubleType, true),
-      StructField("b5_today_cvr", DoubleType, true),
-      StructField("b5_today_conver", DoubleType, true),
-      StructField("b5_today_ecpm", DoubleType, true),
-      StructField("b5_today_click", DoubleType, true),
-      StructField("b5_today_conver_x_log_view", DoubleType, true),
-      StructField("b5_today_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_yesterday_ctr", DoubleType, true),
-      StructField("b5_yesterday_ctcvr", DoubleType, true),
-      StructField("b5_yesterday_cvr", DoubleType, true),
-      StructField("b5_yesterday_conver", DoubleType, true),
-      StructField("b5_yesterday_ecpm", DoubleType, true),
-      StructField("b5_yesterday_click", DoubleType, true),
-      StructField("b5_yesterday_conver_x_log_view", DoubleType, true),
-      StructField("b5_yesterday_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_1h_ctr", DoubleType, true),
-      StructField("b8_1h_ctcvr", DoubleType, true),
-      StructField("b4_3h_conver_x_log_view", DoubleType, true),
-      StructField("b4_3h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_4h_ctr", DoubleType, true),
-      StructField("b4_4h_ctcvr", DoubleType, true),
-      StructField("b4_4h_cvr", DoubleType, true),
-      StructField("b4_4h_conver", DoubleType, true),
-      StructField("b4_4h_ecpm", DoubleType, true),
-      StructField("b4_4h_click", DoubleType, true),
-      StructField("b4_4h_conver_x_log_view", DoubleType, true),
-      StructField("b4_4h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_5h_ctr", DoubleType, true),
-      StructField("b4_5h_ctcvr", DoubleType, true),
-      StructField("b4_5h_cvr", DoubleType, true),
-      StructField("b4_5h_conver", DoubleType, true),
-      StructField("b4_5h_ecpm", DoubleType, true),
-      StructField("b4_5h_click", DoubleType, true),
-      StructField("b4_5h_conver_x_log_view", DoubleType, true),
-      StructField("b4_5h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_6h_ctr", DoubleType, true),
-      StructField("b4_6h_ctcvr", DoubleType, true),
-      StructField("b4_6h_cvr", DoubleType, true),
-      StructField("b4_6h_conver", DoubleType, true),
-      StructField("b4_6h_ecpm", DoubleType, true),
-      StructField("b4_6h_click", DoubleType, true),
-      StructField("b4_6h_conver_x_log_view", DoubleType, true),
-      StructField("b4_6h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_12h_ctr", DoubleType, true),
-      StructField("b4_12h_ctcvr", DoubleType, true),
-      StructField("b4_12h_cvr", DoubleType, true),
-      StructField("b4_12h_conver", DoubleType, true),
-      StructField("b4_12h_ecpm", DoubleType, true),
-      StructField("b4_12h_click", DoubleType, true),
-      StructField("b4_12h_conver_x_log_view", DoubleType, true),
-      StructField("b4_12h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_1d_ctr", DoubleType, true),
-      StructField("b4_1d_ctcvr", DoubleType, true),
-      StructField("b4_1d_cvr", DoubleType, true),
-      StructField("b4_1d_conver", DoubleType, true),
-      StructField("b4_1d_ecpm", DoubleType, true),
-      StructField("b4_1d_click", DoubleType, true),
-      StructField("b4_1d_conver_x_log_view", DoubleType, true),
-      StructField("b4_1d_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_3d_ctr", DoubleType, true),
-      StructField("b2_6h_cvr", DoubleType, true),
-      StructField("b2_6h_conver", DoubleType, true),
-      StructField("b2_6h_ecpm", DoubleType, true),
-      StructField("b2_6h_click", DoubleType, true),
-      StructField("b2_6h_conver_x_log_view", DoubleType, true),
-      StructField("b2_6h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_12h_ctr", DoubleType, true),
-      StructField("b2_12h_ctcvr", DoubleType, true),
-      StructField("b2_12h_cvr", DoubleType, true),
-      StructField("b2_12h_conver", DoubleType, true),
-      StructField("b2_12h_ecpm", DoubleType, true),
-      StructField("b2_12h_click", DoubleType, true),
-      StructField("b2_12h_conver_x_log_view", DoubleType, true),
-      StructField("b2_12h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_1d_ctr", DoubleType, true),
-      StructField("b2_1d_ctcvr", DoubleType, true),
-      StructField("b2_1d_cvr", DoubleType, true),
-      StructField("b2_1d_conver", DoubleType, true),
-      StructField("b2_1d_ecpm", DoubleType, true),
-      StructField("b2_1d_click", DoubleType, true),
-      StructField("b2_1d_conver_x_log_view", DoubleType, true),
-      StructField("b2_1d_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_3d_ctr", DoubleType, true),
-      StructField("b2_3d_ctcvr", DoubleType, true),
-      StructField("b2_3d_cvr", DoubleType, true),
-      StructField("b2_3d_conver", DoubleType, true),
-      StructField("b2_3d_ecpm", DoubleType, true),
-      StructField("b2_3d_click", DoubleType, true),
-      StructField("b2_3d_conver_x_log_view", DoubleType, true),
-      StructField("b2_3d_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_7d_ctr", DoubleType, true),
-      StructField("b2_7d_ctcvr", DoubleType, true),
-      StructField("b2_7d_cvr", DoubleType, true),
-      StructField("b2_7d_conver", DoubleType, true),
-      StructField("b2_7d_ecpm", DoubleType, true),
-      StructField("b2_7d_click", DoubleType, true),
-      StructField("b2_7d_conver_x_log_view", DoubleType, true),
-      StructField("b2_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_today_ctr", DoubleType, true),
-      StructField("b2_today_ctcvr", DoubleType, true),
-      StructField("b2_today_cvr", DoubleType, true),
-      StructField("b2_today_conver", DoubleType, true),
-      StructField("b2_today_ecpm", DoubleType, true),
-      StructField("cpa", DoubleType, true),
-      StructField("b2_1h_ctr", DoubleType, true),
-      StructField("b2_1h_ctcvr", DoubleType, true),
-      StructField("b2_1h_cvr", DoubleType, true),
-      StructField("b2_1h_conver", DoubleType, true),
-      StructField("b2_1h_ecpm", DoubleType, true),
-      StructField("b2_1h_click", DoubleType, true),
-      StructField("b2_1h_conver_x_log_view", DoubleType, true),
-      StructField("b2_1h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_2h_ctr", DoubleType, true),
-      StructField("b2_2h_ctcvr", DoubleType, true),
-      StructField("b2_2h_cvr", DoubleType, true),
-      StructField("b2_2h_conver", DoubleType, true),
-      StructField("b2_2h_ecpm", DoubleType, true),
-      StructField("b2_2h_click", DoubleType, true),
-      StructField("b2_2h_conver_x_log_view", DoubleType, true),
-      StructField("b2_2h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_3h_ctr", DoubleType, true),
-      StructField("b2_3h_ctcvr", DoubleType, true),
-      StructField("b2_3h_cvr", DoubleType, true),
-      StructField("b2_3h_conver", DoubleType, true),
-      StructField("b2_3h_ecpm", DoubleType, true),
-      StructField("b2_3h_click", DoubleType, true),
-      StructField("b2_3h_conver_x_log_view", DoubleType, true),
-      StructField("b2_3h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_4h_ctr", DoubleType, true),
-      StructField("b2_4h_ctcvr", DoubleType, true),
-      StructField("b2_4h_cvr", DoubleType, true),
-      StructField("b2_4h_conver", DoubleType, true),
-      StructField("b2_4h_ecpm", DoubleType, true),
-      StructField("b2_4h_click", DoubleType, true),
-      StructField("b2_4h_conver_x_log_view", DoubleType, true),
-      StructField("b2_4h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_5h_ctr", DoubleType, true),
-      StructField("b2_5h_ctcvr", DoubleType, true),
-      StructField("b2_5h_cvr", DoubleType, true),
-      StructField("b2_5h_conver", DoubleType, true),
-      StructField("b2_5h_ecpm", DoubleType, true),
-      StructField("b2_5h_click", DoubleType, true),
-      StructField("b2_5h_conver_x_log_view", DoubleType, true),
-      StructField("b2_5h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_6h_ctr", DoubleType, true),
-      StructField("b2_6h_ctcvr", DoubleType, true),
-      StructField("b9_5h_conver", DoubleType, true),
-      StructField("b9_5h_ecpm", DoubleType, true),
-      StructField("b9_5h_click", DoubleType, true),
-      StructField("b9_5h_conver_x_log_view", DoubleType, true),
-      StructField("b9_5h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_6h_ctr", DoubleType, true),
-      StructField("b9_6h_ctcvr", DoubleType, true),
-      StructField("b9_6h_cvr", DoubleType, true),
-      StructField("b9_6h_conver", DoubleType, true),
-      StructField("b9_6h_ecpm", DoubleType, true),
-      StructField("b9_6h_click", DoubleType, true),
-      StructField("b9_6h_conver_x_log_view", DoubleType, true),
-      StructField("b9_6h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_12h_ctr", DoubleType, true),
-      StructField("b9_12h_ctcvr", DoubleType, true),
-      StructField("b9_12h_cvr", DoubleType, true),
-      StructField("b9_12h_conver", DoubleType, true),
-      StructField("b9_12h_ecpm", DoubleType, true),
-      StructField("b9_12h_click", DoubleType, true),
-      StructField("b9_12h_conver_x_log_view", DoubleType, true),
-      StructField("b9_12h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_1d_ctr", DoubleType, true),
-      StructField("b9_1d_ctcvr", DoubleType, true),
-      StructField("b9_1d_cvr", DoubleType, true),
-      StructField("b9_1d_conver", DoubleType, true),
-      StructField("b9_1d_ecpm", DoubleType, true),
-      StructField("b9_1d_click", DoubleType, true),
-      StructField("b9_1d_conver_x_log_view", DoubleType, true),
-      StructField("b9_1d_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_3d_ctr", DoubleType, true),
-      StructField("b9_3d_ctcvr", DoubleType, true),
-      StructField("b9_3d_cvr", DoubleType, true),
-      StructField("b9_3d_conver", DoubleType, true),
-      StructField("b9_3d_ecpm", DoubleType, true),
-      StructField("b9_3d_click", DoubleType, true),
-      StructField("b9_3d_conver_x_log_view", DoubleType, true),
-      StructField("b9_3d_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_7d_ctr", DoubleType, true),
-      StructField("b9_7d_ctcvr", DoubleType, true),
-      StructField("b9_7d_cvr", DoubleType, true),
-      StructField("b9_7d_conver", DoubleType, true),
-      StructField("b9_7d_ecpm", DoubleType, true),
-      StructField("b9_7d_click", DoubleType, true),
-      StructField("weight", DoubleType, true),
-      StructField("dt", StringType, true)
-    ))
-
-
-    // 创建 DataFrame
-    val df = spark.createDataFrame(spark.sparkContext.parallelize(rows), schema)
-    df.write.mode("append").saveAsTable(table)
-  }
-
-
-  private def processString(input: String): Map[String, Any] = {
-    // 去除多余空格并按空格分割成键值对数组
-    val parts = input.trim.split("\\s+")
-    var resultMap = Map[String, Any]()
-    // 处理第一个元素,假设为特殊标识
-    resultMap += ("has_conversion" -> parts(0))
-    // 处理后续的键值对
-    parts.drop(1).foreach { part =>
-      part.split(":", 2) match {
-        case Array(keyStr, valueStr) =>
-          val key = keyStr.replace("*", "_x_").replace("(view)", "_view")
-          val value = try {
-            valueStr.toDouble
-          } catch {
-            case _: NumberFormatException => valueStr
-          }
-          resultMap += (key -> value)
-        case _ => // 若无法解析成键值对则丢弃
-      }
-    }
-    resultMap
-  }
-}
+//package com.aliyun.odps.spark.examples.makedata_ad.v20240718
+//
+//import com.alibaba.fastjson.JSON
+//import com.aliyun.odps.spark.examples.myUtils.ParamUtils
+//import org.apache.spark.sql.types.{DoubleType, LongType, StringType, StructField, StructType}
+//import org.apache.spark.sql.{Row, SparkSession}
+//
+//import scala.collection.JavaConversions._
+//import scala.collection.mutable.ArrayBuffer
+//import scala.io.Source
+//
+///*
+//
+// */
+//
+//object makedata_ad_32_bucket_hive_20240718 {
+//  def main(args: Array[String]): Unit = {
+//
+//    val spark = SparkSession
+//      .builder()
+//      .appName(this.getClass.getName)
+//      .getOrCreate()
+//    val sc = spark.sparkContext
+//
+//    // 1 读取参数
+//    val param = ParamUtils.parseArgs(args)
+//    val readPath = param.getOrElse("readPath", "/dw/recommend/model/31_ad_sample_data/20240620*")
+//    val sampleRate = param.getOrElse("sampleRate", "1.0").toDouble
+//    val bucketNum = param.getOrElse("bucketNum", "100").toInt
+//    val featureNameFile = param.getOrElse("featureNameFile", "20240718_ad_feature_name.txt");
+//    val table = param.getOrElse("table", "ad_easyrec_train_data_v1")
+//
+//    val loader = getClass.getClassLoader
+//    val resourceUrl = loader.getResource(featureNameFile)
+//    val content =
+//      if (resourceUrl != null) {
+//        val content = Source.fromURL(resourceUrl).getLines().mkString("\n")
+//        Source.fromURL(resourceUrl).close()
+//        content
+//      } else {
+//        ""
+//      }
+//    println(content)
+//    val contentList = content.split("\n")
+//      .map(r => r.replace(" ", "").replaceAll("\n", ""))
+//      .filter(r => r.nonEmpty).toList
+//
+//
+//    val data = sc.textFile(readPath)
+//    println("问题数据数量:" + data.filter(r => r.split("\t").length != 3).count())
+//    val data1 = data.map(r => {
+//      val rList = r.split("\t")
+//      val jsons = JSON.parseObject(rList(2))
+//      val doubles = scala.collection.mutable.Map[String, Double]()
+//      jsons.foreach(r => {
+//        doubles.put(r._1, jsons.getDoubleValue(r._1))
+//      })
+//      doubles
+//    }).sample(false, sampleRate).repartition(20)
+//
+//    val result = new ArrayBuffer[String]()
+//
+//    for (i <- contentList.indices) {
+//      println("特征:" + contentList(i))
+//      val data2 = data1.map(r => r.getOrDefault(contentList(i), 0D)).filter(_ > 1E-8).collect().sorted
+//      val len = data2.length
+//      if (len == 0) {
+//        result.add(contentList(i) + "\t" + bucketNum.toString + "\t" + "0")
+//      } else {
+//        val oneBucketNum = (len - 1) / (bucketNum - 1) + 1 // 确保每个桶至少有一个元素
+//        val buffers = new ArrayBuffer[Double]()
+//
+//        var lastBucketValue = data2(0) // 记录上一个桶的切分点
+//        for (j <- 0 until len by oneBucketNum) {
+//          val d = data2(j)
+//          if (j > 0 && d != lastBucketValue) {
+//            // 如果当前切分点不同于上一个切分点,则保存当前切分点
+//            buffers += d
+//          }
+//          lastBucketValue = d // 更新上一个桶的切分点
+//        }
+//
+//        // 最后一个桶的结束点应该是数组的最后一个元素
+//        if (!buffers.contains(data2.last)) {
+//          buffers += data2.last
+//        }
+//        result.add(contentList(i) + "\t" + bucketNum.toString + "\t" + buffers.mkString(","))
+//      }
+//    }
+//
+//    val rows = new ArrayBuffer[Row]()
+//    // 使用 for 循环遍历
+//    for (element <- result) {
+//      val map = processString(element)
+//      rows.add(Row(
+//        map.getOrElse("has_click", null).asInstanceOf[Long],
+//        map.getOrElse("has_conversion", null).asInstanceOf[Long],
+//        map.getOrElse("b8_yesterday_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_yesterday_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_yesterday_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_yesterday_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b8_yesterday_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b8_yesterday_click", null).asInstanceOf[Double],
+//        map.getOrElse("b8_yesterday_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_yesterday_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_2h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_2h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_2h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_2h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b9_2h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b9_2h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b9_2h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b9_2h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_4h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_4h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_4h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_4h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b9_4h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b9_4h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b9_4h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b9_4h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_5h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_5h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_5h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b7_14d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b7_14d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b7_14d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b7_14d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b7_14d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b7_14d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b7_14d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("viewall", null).asInstanceOf[Double],
+//        map.getOrElse("clickall", null).asInstanceOf[Double],
+//        map.getOrElse("converall", null).asInstanceOf[Double],
+//        map.getOrElse("incomeall", null).asInstanceOf[Double],
+//        map.getOrElse("ctr_all", null).asInstanceOf[Double],
+//        map.getOrElse("ctcvr_all", null).asInstanceOf[Double],
+//        map.getOrElse("cvr_all", null).asInstanceOf[Double],
+//        map.getOrElse("ecpm_all", null).asInstanceOf[Double],
+//        map.getOrElse("timediff_view", null).asInstanceOf[Double],
+//        map.getOrElse("timediff_click", null).asInstanceOf[Double],
+//        map.getOrElse("timediff_conver", null).asInstanceOf[Double],
+//        map.getOrElse("actionstatic_view", null).asInstanceOf[Double],
+//        map.getOrElse("actionstatic_click", null).asInstanceOf[Double],
+//        map.getOrElse("actionstatic_conver", null).asInstanceOf[Double],
+//        map.getOrElse("actionstatic_income", null).asInstanceOf[Double],
+//        map.getOrElse("actionstatic_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("actionstatic_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("actionstatic_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("e1_tags_3d_matchnum", null).asInstanceOf[Double],
+//        map.getOrElse("e1_tags_3d_maxscore", null).asInstanceOf[Double],
+//        map.getOrElse("e1_tags_3d_avgscore", null).asInstanceOf[Double],
+//        map.getOrElse("e1_tags_7d_matchnum", null).asInstanceOf[Double],
+//        map.getOrElse("e1_tags_7d_maxscore", null).asInstanceOf[Double],
+//        map.getOrElse("e1_tags_7d_avgscore", null).asInstanceOf[Double],
+//        map.getOrElse("e1_tags_14d_matchnum", null).asInstanceOf[Double],
+//        map.getOrElse("e1_tags_14d_maxscore", null).asInstanceOf[Double],
+//        map.getOrElse("e1_tags_14d_avgscore", null).asInstanceOf[Double],
+//        map.getOrElse("e2_tags_3d_matchnum", null).asInstanceOf[Double],
+//        map.getOrElse("e2_tags_3d_maxscore", null).asInstanceOf[Double],
+//        map.getOrElse("e2_tags_3d_avgscore", null).asInstanceOf[Double],
+//        map.getOrElse("e2_tags_7d_matchnum", null).asInstanceOf[Double],
+//        map.getOrElse("e2_tags_7d_maxscore", null).asInstanceOf[Double],
+//        map.getOrElse("e2_tags_7d_avgscore", null).asInstanceOf[Double],
+//        map.getOrElse("e2_tags_14d_matchnum", null).asInstanceOf[Double],
+//        map.getOrElse("e2_tags_14d_maxscore", null).asInstanceOf[Double],
+//        map.getOrElse("e2_tags_14d_avgscore", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_2h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_2h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_2h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_2h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b8_2h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b8_2h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b8_2h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_2h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_4h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_4h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_4h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_4h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b8_4h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b8_4h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b8_4h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_4h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_5h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_5h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_5h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_5h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b8_5h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b8_5h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b8_5h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_5h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_6h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_6h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_6h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_6h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b8_6h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_7d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_7d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_7d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_7d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b4_7d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_7d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b4_7d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b4_7d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_today_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_today_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_today_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_today_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b4_today_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_today_click", null).asInstanceOf[Double],
+//        map.getOrElse("b4_today_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b4_today_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_yesterday_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_yesterday_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_yesterday_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_yesterday_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b4_yesterday_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_yesterday_click", null).asInstanceOf[Double],
+//        map.getOrElse("b4_yesterday_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b4_yesterday_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_2h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_2h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_2h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_2h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_3h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_3h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_3h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_3h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_3h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_6h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_6h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_6h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_6h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_6h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_12h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_12h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_12h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_12h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_12h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_1d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_1d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_1d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_1d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_1d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_3d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_3d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_3d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_3d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_3d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_7d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_7d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_7d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_7d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("d1_feature_7d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("vid_rank_ctr_1d", null).asInstanceOf[Double],
+//        map.getOrElse("vid_rank_ctr_3d", null).asInstanceOf[Double],
+//        map.getOrElse("vid_rank_ctr_7d", null).asInstanceOf[Double],
+//        map.getOrElse("vid_rank_ctr_14d", null).asInstanceOf[Double],
+//        map.getOrElse("vid_rank_ctcvr_1d", null).asInstanceOf[Double],
+//        map.getOrElse("vid_rank_ctcvr_3d", null).asInstanceOf[Double],
+//        map.getOrElse("vid_rank_ctcvr_7d", null).asInstanceOf[Double],
+//        map.getOrElse("vid_rank_ctcvr_14d", null).asInstanceOf[Double],
+//        map.getOrElse("vid_rank_ecpm_1d", null).asInstanceOf[Double],
+//        map.getOrElse("vid_rank_ecpm_3d", null).asInstanceOf[Double],
+//        map.getOrElse("vid_rank_ecpm_7d", null).asInstanceOf[Double],
+//        map.getOrElse("vid_rank_ecpm_14d", null).asInstanceOf[Double],
+//        map.getOrElse("ctitle_vtitle_similarity", null).asInstanceOf[Double],
+//        map.getOrElse("b5_2h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b5_2h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b5_2h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b5_2h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_4h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_4h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_4h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_4h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b5_4h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b5_4h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b5_4h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b5_4h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_5h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_5h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_5h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_5h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b5_5h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b5_5h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b5_5h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b5_5h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_6h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_6h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_6h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_6h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b5_6h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b5_6h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b5_6h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b5_6h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_12h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_12h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_12h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_12h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b5_12h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b5_12h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b5_12h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_6h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b8_6h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_6h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_12h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_12h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_12h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_12h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b8_12h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b8_12h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b8_12h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_12h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_3d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_7d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_7d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_7d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_7d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b8_7d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b8_7d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b8_7d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_7d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_today_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_today_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_today_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_today_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b8_today_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b8_today_click", null).asInstanceOf[Double],
+//        map.getOrElse("b8_today_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b8_today_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_today_click", null).asInstanceOf[Double],
+//        map.getOrElse("b2_today_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b2_today_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_yesterday_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_yesterday_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_yesterday_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_yesterday_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b2_yesterday_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b2_yesterday_click", null).asInstanceOf[Double],
+//        map.getOrElse("b2_yesterday_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b2_yesterday_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_2h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_2h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_2h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_2h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b3_2h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b3_2h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b3_2h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b3_2h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_4h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_4h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_4h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_4h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b3_4h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b3_4h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b3_4h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b3_4h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_5h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_5h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_5h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_5h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b3_5h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b3_5h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b3_5h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b3_5h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_6h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_6h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_6h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_6h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b3_6h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b3_6h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b3_6h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b3_6h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_12h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_12h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_12h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_12h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b3_12h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b3_12h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b3_12h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b3_12h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b3_1d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b3_3d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_7d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_7d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_7d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_7d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b3_7d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b3_7d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b3_7d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b3_7d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_today_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_today_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_today_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_today_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b3_today_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b3_today_click", null).asInstanceOf[Double],
+//        map.getOrElse("b3_today_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b3_today_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_yesterday_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_yesterday_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_yesterday_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b3_yesterday_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b3_yesterday_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b3_yesterday_click", null).asInstanceOf[Double],
+//        map.getOrElse("b3_yesterday_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b3_yesterday_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_2h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_2h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_2h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_2h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b4_2h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_2h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b4_2h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b4_2h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b9_7d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b9_7d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_today_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_today_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_today_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_today_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b9_today_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b9_today_click", null).asInstanceOf[Double],
+//        map.getOrElse("b9_today_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b9_today_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_yesterday_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_yesterday_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_yesterday_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_yesterday_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b9_yesterday_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b9_yesterday_click", null).asInstanceOf[Double],
+//        map.getOrElse("b9_yesterday_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b9_yesterday_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b6_7d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b6_7d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b6_7d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b6_7d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b6_7d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b6_7d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b6_7d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b6_7d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b6_14d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b6_14d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b6_14d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b6_14d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b6_14d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b6_14d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b6_14d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b6_14d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b7_7d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b7_7d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b7_7d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b7_7d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b7_7d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b7_7d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b7_7d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b7_7d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b7_14d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_12h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b5_1d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b5_3d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_7d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_7d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_7d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_7d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b5_7d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b5_7d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b5_7d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b5_7d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_today_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_today_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_today_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_today_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b5_today_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b5_today_click", null).asInstanceOf[Double],
+//        map.getOrElse("b5_today_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b5_today_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_yesterday_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_yesterday_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_yesterday_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b5_yesterday_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b5_yesterday_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b5_yesterday_click", null).asInstanceOf[Double],
+//        map.getOrElse("b5_yesterday_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b5_yesterday_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b8_1h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_4h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_4h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_4h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_4h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b4_4h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_4h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b4_4h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b4_4h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_5h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_5h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_5h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_5h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b4_5h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_5h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b4_5h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b4_5h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_6h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_6h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_6h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_6h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b4_6h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_6h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b4_6h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b4_6h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_12h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_12h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_12h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_12h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b4_12h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_12h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b4_12h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b4_12h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b4_1d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b4_3d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_6h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_6h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b2_6h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b2_6h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b2_6h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b2_6h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_12h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_12h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_12h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_12h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b2_12h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b2_12h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b2_12h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b2_12h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_7d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_7d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_7d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_7d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b2_7d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b2_7d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b2_7d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b2_7d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_today_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_today_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_today_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_today_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b2_today_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("cpa", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b2_1h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_2h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_2h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_2h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_2h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b2_2h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b2_2h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b2_2h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b2_2h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b2_3h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_4h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_4h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_4h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_4h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b2_4h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b2_4h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b2_4h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b2_4h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_5h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_5h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_5h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_5h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b2_5h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b2_5h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b2_5h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b2_5h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_6h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b2_6h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_5h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b9_5h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b9_5h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b9_5h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b9_5h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_6h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_6h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_6h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_6h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b9_6h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b9_6h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b9_6h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b9_6h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_12h_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_12h_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_12h_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_12h_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b9_12h_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b9_12h_click", null).asInstanceOf[Double],
+//        map.getOrElse("b9_12h_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b9_12h_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b9_1d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3d_click", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3d_conver_x_log_view", null).asInstanceOf[Double],
+//        map.getOrElse("b9_3d_conver_x_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_7d_ctr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_7d_ctcvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_7d_cvr", null).asInstanceOf[Double],
+//        map.getOrElse("b9_7d_conver", null).asInstanceOf[Double],
+//        map.getOrElse("b9_7d_ecpm", null).asInstanceOf[Double],
+//        map.getOrElse("b9_7d_click", null).asInstanceOf[Double],
+//        map.getOrElse("weight", null).asInstanceOf[Double],
+//        map.getOrElse("dt", "20250101").asInstanceOf[String]
+//      ))
+//    }
+//
+//    val schema = StructType(Seq(
+//      StructField("has_click", LongType, nullable = true),
+//      StructField("has_conversion", LongType, nullable = true),
+//      StructField("b8_yesterday_ctr", DoubleType, nullable = true),
+//      StructField("b8_yesterday_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_yesterday_cvr", DoubleType, nullable = true),
+//      StructField("b8_yesterday_conver", DoubleType, nullable = true),
+//      StructField("b8_yesterday_ecpm", DoubleType, nullable = true),
+//      StructField("b8_yesterday_click", DoubleType, nullable = true),
+//      StructField("b8_yesterday_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_yesterday_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_1h_ctr", DoubleType, nullable = true),
+//      StructField("b9_1h_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_1h_cvr", DoubleType, nullable = true),
+//      StructField("b9_1h_conver", DoubleType, nullable = true),
+//      StructField("b9_1h_ecpm", DoubleType, nullable = true),
+//      StructField("b9_1h_click", DoubleType, nullable = true),
+//      StructField("b9_1h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b9_1h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_2h_ctr", DoubleType, nullable = true),
+//      StructField("b9_2h_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_2h_cvr", DoubleType, nullable = true),
+//      StructField("b9_2h_conver", DoubleType, nullable = true),
+//      StructField("b9_2h_ecpm", DoubleType, nullable = true),
+//      StructField("b9_2h_click", DoubleType, nullable = true),
+//      StructField("b9_2h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b9_2h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_3h_ctr", DoubleType, nullable = true),
+//      StructField("b9_3h_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_3h_cvr", DoubleType, nullable = true),
+//      StructField("b9_3h_conver", DoubleType, nullable = true),
+//      StructField("b9_3h_ecpm", DoubleType, nullable = true),
+//      StructField("b9_3h_click", DoubleType, nullable = true),
+//      StructField("b9_3h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b9_3h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_4h_ctr", DoubleType, nullable = true),
+//      StructField("b9_4h_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_4h_cvr", DoubleType, nullable = true),
+//      StructField("b9_4h_conver", DoubleType, nullable = true),
+//      StructField("b9_4h_ecpm", DoubleType, nullable = true),
+//      StructField("b9_4h_click", DoubleType, nullable = true),
+//      StructField("b9_4h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b9_4h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_5h_ctr", DoubleType, nullable = true),
+//      StructField("b9_5h_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_5h_cvr", DoubleType, nullable = true),
+//      StructField("b7_14d_ctcvr", DoubleType, nullable = true),
+//      StructField("b7_14d_cvr", DoubleType, nullable = true),
+//      StructField("b7_14d_conver", DoubleType, nullable = true),
+//      StructField("b7_14d_ecpm", DoubleType, nullable = true),
+//      StructField("b7_14d_click", DoubleType, nullable = true),
+//      StructField("b7_14d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b7_14d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("viewall", DoubleType, nullable = true),
+//      StructField("clickall", DoubleType, nullable = true),
+//      StructField("converall", DoubleType, nullable = true),
+//      StructField("incomeall", DoubleType, nullable = true),
+//      StructField("ctr_all", DoubleType, nullable = true),
+//      StructField("ctcvr_all", DoubleType, nullable = true),
+//      StructField("cvr_all", DoubleType, nullable = true),
+//      StructField("ecpm_all", DoubleType, nullable = true),
+//      StructField("timediff_view", DoubleType, nullable = true),
+//      StructField("timediff_click", DoubleType, nullable = true),
+//      StructField("timediff_conver", DoubleType, nullable = true),
+//      StructField("actionstatic_view", DoubleType, nullable = true),
+//      StructField("actionstatic_click", DoubleType, nullable = true),
+//      StructField("actionstatic_conver", DoubleType, nullable = true),
+//      StructField("actionstatic_income", DoubleType, nullable = true),
+//      StructField("actionstatic_ctr", DoubleType, nullable = true),
+//      StructField("actionstatic_ctcvr", DoubleType, nullable = true),
+//      StructField("actionstatic_cvr", DoubleType, nullable = true),
+//      StructField("e1_tags_3d_matchnum", DoubleType, nullable = true),
+//      StructField("e1_tags_3d_maxscore", DoubleType, nullable = true),
+//      StructField("e1_tags_3d_avgscore", DoubleType, nullable = true),
+//      StructField("e1_tags_7d_matchnum", DoubleType, nullable = true),
+//      StructField("e1_tags_7d_maxscore", DoubleType, nullable = true),
+//      StructField("e1_tags_7d_avgscore", DoubleType, nullable = true),
+//      StructField("e1_tags_14d_matchnum", DoubleType, nullable = true),
+//      StructField("e1_tags_14d_maxscore", DoubleType, nullable = true),
+//      StructField("e1_tags_14d_avgscore", DoubleType, nullable = true),
+//      StructField("e2_tags_3d_matchnum", DoubleType, nullable = true),
+//      StructField("e2_tags_3d_maxscore", DoubleType, nullable = true),
+//      StructField("e2_tags_3d_avgscore", DoubleType, nullable = true),
+//      StructField("e2_tags_7d_matchnum", DoubleType, nullable = true),
+//      StructField("e2_tags_7d_maxscore", DoubleType, nullable = true),
+//      StructField("e2_tags_7d_avgscore", DoubleType, nullable = true),
+//      StructField("e2_tags_14d_matchnum", DoubleType, nullable = true),
+//      StructField("e2_tags_14d_maxscore", DoubleType, nullable = true),
+//      StructField("e2_tags_14d_avgscore", DoubleType, nullable = true),
+//      StructField("b8_1h_cvr", DoubleType, nullable = true),
+//      StructField("b8_1h_conver", DoubleType, nullable = true),
+//      StructField("b8_1h_ecpm", DoubleType, nullable = true),
+//      StructField("b8_1h_click", DoubleType, nullable = true),
+//      StructField("b8_1h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_1h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_2h_ctr", DoubleType, nullable = true),
+//      StructField("b8_2h_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_2h_cvr", DoubleType, nullable = true),
+//      StructField("b8_2h_conver", DoubleType, nullable = true),
+//      StructField("b8_2h_ecpm", DoubleType, nullable = true),
+//      StructField("b8_2h_click", DoubleType, nullable = true),
+//      StructField("b8_2h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_2h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_3h_ctr", DoubleType, nullable = true),
+//      StructField("b8_3h_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_3h_cvr", DoubleType, nullable = true),
+//      StructField("b8_3h_conver", DoubleType, nullable = true),
+//      StructField("b8_3h_ecpm", DoubleType, nullable = true),
+//      StructField("b8_3h_click", DoubleType, nullable = true),
+//      StructField("b8_3h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_3h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_4h_ctr", DoubleType, nullable = true),
+//      StructField("b8_4h_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_4h_cvr", DoubleType, nullable = true),
+//      StructField("b8_4h_conver", DoubleType, nullable = true),
+//      StructField("b8_4h_ecpm", DoubleType, nullable = true),
+//      StructField("b8_4h_click", DoubleType, nullable = true),
+//      StructField("b8_4h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_4h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_5h_ctr", DoubleType, nullable = true),
+//      StructField("b8_5h_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_5h_cvr", DoubleType, nullable = true),
+//      StructField("b8_5h_conver", DoubleType, nullable = true),
+//      StructField("b8_5h_ecpm", DoubleType, nullable = true),
+//      StructField("b8_5h_click", DoubleType, nullable = true),
+//      StructField("b8_5h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_5h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_6h_ctr", DoubleType, nullable = true),
+//      StructField("b8_6h_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_6h_cvr", DoubleType, nullable = true),
+//      StructField("b8_6h_conver", DoubleType, nullable = true),
+//      StructField("b8_6h_ecpm", DoubleType, nullable = true),
+//      StructField("b4_3d_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_3d_cvr", DoubleType, nullable = true),
+//      StructField("b4_3d_conver", DoubleType, nullable = true),
+//      StructField("b4_3d_ecpm", DoubleType, nullable = true),
+//      StructField("b4_3d_click", DoubleType, nullable = true),
+//      StructField("b4_3d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b4_3d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_7d_ctr", DoubleType, nullable = true),
+//      StructField("b4_7d_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_7d_cvr", DoubleType, nullable = true),
+//      StructField("b4_7d_conver", DoubleType, nullable = true),
+//      StructField("b4_7d_ecpm", DoubleType, nullable = true),
+//      StructField("b4_7d_click", DoubleType, nullable = true),
+//      StructField("b4_7d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b4_7d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_today_ctr", DoubleType, nullable = true),
+//      StructField("b4_today_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_today_cvr", DoubleType, nullable = true),
+//      StructField("b4_today_conver", DoubleType, nullable = true),
+//      StructField("b4_today_ecpm", DoubleType, nullable = true),
+//      StructField("b4_today_click", DoubleType, nullable = true),
+//      StructField("b4_today_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b4_today_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_yesterday_ctr", DoubleType, nullable = true),
+//      StructField("b4_yesterday_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_yesterday_cvr", DoubleType, nullable = true),
+//      StructField("b4_yesterday_conver", DoubleType, nullable = true),
+//      StructField("b4_yesterday_ecpm", DoubleType, nullable = true),
+//      StructField("b4_yesterday_click", DoubleType, nullable = true),
+//      StructField("b4_yesterday_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b4_yesterday_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_1h_ctr", DoubleType, nullable = true),
+//      StructField("b5_1h_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_1h_cvr", DoubleType, nullable = true),
+//      StructField("b5_1h_conver", DoubleType, nullable = true),
+//      StructField("b5_1h_ecpm", DoubleType, nullable = true),
+//      StructField("b5_1h_click", DoubleType, nullable = true),
+//      StructField("b5_1h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b5_1h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_2h_ctr", DoubleType, nullable = true),
+//      StructField("b5_2h_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_2h_cvr", DoubleType, nullable = true),
+//      StructField("b5_2h_conver", DoubleType, nullable = true),
+//      StructField("d1_feature_3h_ctr", DoubleType, nullable = true),
+//      StructField("d1_feature_3h_ctcvr", DoubleType, nullable = true),
+//      StructField("d1_feature_3h_cvr", DoubleType, nullable = true),
+//      StructField("d1_feature_3h_conver", DoubleType, nullable = true),
+//      StructField("d1_feature_3h_ecpm", DoubleType, nullable = true),
+//      StructField("d1_feature_6h_ctr", DoubleType, nullable = true),
+//      StructField("d1_feature_6h_ctcvr", DoubleType, nullable = true),
+//      StructField("d1_feature_6h_cvr", DoubleType, nullable = true),
+//      StructField("d1_feature_6h_conver", DoubleType, nullable = true),
+//      StructField("d1_feature_6h_ecpm", DoubleType, nullable = true),
+//      StructField("d1_feature_12h_ctr", DoubleType, nullable = true),
+//      StructField("d1_feature_12h_ctcvr", DoubleType, nullable = true),
+//      StructField("d1_feature_12h_cvr", DoubleType, nullable = true),
+//      StructField("d1_feature_12h_conver", DoubleType, nullable = true),
+//      StructField("d1_feature_12h_ecpm", DoubleType, nullable = true),
+//      StructField("d1_feature_1d_ctr", DoubleType, nullable = true),
+//      StructField("d1_feature_1d_ctcvr", DoubleType, nullable = true),
+//      StructField("d1_feature_1d_cvr", DoubleType, nullable = true),
+//      StructField("d1_feature_1d_conver", DoubleType, nullable = true),
+//      StructField("d1_feature_1d_ecpm", DoubleType, nullable = true),
+//      StructField("d1_feature_3d_ctr", DoubleType, nullable = true),
+//      StructField("d1_feature_3d_ctcvr", DoubleType, nullable = true),
+//      StructField("d1_feature_3d_cvr", DoubleType, nullable = true),
+//      StructField("d1_feature_3d_conver", DoubleType, nullable = true),
+//      StructField("d1_feature_3d_ecpm", DoubleType, nullable = true),
+//      StructField("d1_feature_7d_ctr", DoubleType, nullable = true),
+//      StructField("d1_feature_7d_ctcvr", DoubleType, nullable = true),
+//      StructField("d1_feature_7d_cvr", DoubleType, nullable = true),
+//      StructField("d1_feature_7d_conver", DoubleType, nullable = true),
+//      StructField("d1_feature_7d_ecpm", DoubleType, nullable = true),
+//      StructField("vid_rank_ctr_1d", DoubleType, nullable = true),
+//      StructField("vid_rank_ctr_3d", DoubleType, nullable = true),
+//      StructField("vid_rank_ctr_7d", DoubleType, nullable = true),
+//      StructField("vid_rank_ctr_14d", DoubleType, nullable = true),
+//      StructField("vid_rank_ctcvr_1d", DoubleType, nullable = true),
+//      StructField("vid_rank_ctcvr_3d", DoubleType, nullable = true),
+//      StructField("vid_rank_ctcvr_7d", DoubleType, nullable = true),
+//      StructField("vid_rank_ctcvr_14d", DoubleType, nullable = true),
+//      StructField("vid_rank_ecpm_1d", DoubleType, nullable = true),
+//      StructField("vid_rank_ecpm_3d", DoubleType, nullable = true),
+//      StructField("vid_rank_ecpm_7d", DoubleType, nullable = true),
+//      StructField("vid_rank_ecpm_14d", DoubleType, nullable = true),
+//      StructField("ctitle_vtitle_similarity", DoubleType, nullable = true),
+//      StructField("b5_2h_ecpm", DoubleType, nullable = true),
+//      StructField("b5_2h_click", DoubleType, nullable = true),
+//      StructField("b5_2h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b5_2h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_3h_ctr", DoubleType, nullable = true),
+//      StructField("b5_3h_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_3h_cvr", DoubleType, nullable = true),
+//      StructField("b5_3h_conver", DoubleType, nullable = true),
+//      StructField("b5_3h_ecpm", DoubleType, nullable = true),
+//      StructField("b5_3h_click", DoubleType, nullable = true),
+//      StructField("b5_3h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b5_3h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_4h_ctr", DoubleType, nullable = true),
+//      StructField("b5_4h_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_4h_cvr", DoubleType, nullable = true),
+//      StructField("b5_4h_conver", DoubleType, nullable = true),
+//      StructField("b5_4h_ecpm", DoubleType, nullable = true),
+//      StructField("b5_4h_click", DoubleType, nullable = true),
+//      StructField("b5_4h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b5_4h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_5h_ctr", DoubleType, nullable = true),
+//      StructField("b5_5h_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_5h_cvr", DoubleType, nullable = true),
+//      StructField("b5_5h_conver", DoubleType, nullable = true),
+//      StructField("b5_5h_ecpm", DoubleType, nullable = true),
+//      StructField("b5_5h_click", DoubleType, nullable = true),
+//      StructField("b5_5h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b5_5h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_6h_ctr", DoubleType, nullable = true),
+//      StructField("b5_6h_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_6h_cvr", DoubleType, nullable = true),
+//      StructField("b5_6h_conver", DoubleType, nullable = true),
+//      StructField("b5_6h_ecpm", DoubleType, nullable = true),
+//      StructField("b5_6h_click", DoubleType, nullable = true),
+//      StructField("b5_6h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b5_6h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_12h_ctr", DoubleType, nullable = true),
+//      StructField("b5_12h_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_12h_cvr", DoubleType, nullable = true),
+//      StructField("b5_12h_conver", DoubleType, nullable = true),
+//      StructField("b5_12h_ecpm", DoubleType, nullable = true),
+//      StructField("b5_12h_click", DoubleType, nullable = true),
+//      StructField("b5_12h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_6h_click", DoubleType, nullable = true),
+//      StructField("b8_6h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_6h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_12h_ctr", DoubleType, nullable = true),
+//      StructField("b8_12h_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_12h_cvr", DoubleType, nullable = true),
+//      StructField("b8_12h_conver", DoubleType, nullable = true),
+//      StructField("b8_12h_ecpm", DoubleType, nullable = true),
+//      StructField("b8_12h_click", DoubleType, nullable = true),
+//      StructField("b8_12h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_12h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_1d_ctr", DoubleType, nullable = true),
+//      StructField("b8_1d_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_1d_cvr", DoubleType, nullable = true),
+//      StructField("b8_1d_conver", DoubleType, nullable = true),
+//      StructField("b8_1d_ecpm", DoubleType, nullable = true),
+//      StructField("b8_1d_click", DoubleType, nullable = true),
+//      StructField("b8_1d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_1d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_3d_ctr", DoubleType, nullable = true),
+//      StructField("b8_3d_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_3d_cvr", DoubleType, nullable = true),
+//      StructField("b8_3d_conver", DoubleType, nullable = true),
+//      StructField("b8_3d_ecpm", DoubleType, nullable = true),
+//      StructField("b8_3d_click", DoubleType, nullable = true),
+//      StructField("b8_3d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_3d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_7d_ctr", DoubleType, nullable = true),
+//      StructField("b8_7d_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_7d_cvr", DoubleType, nullable = true),
+//      StructField("b8_7d_conver", DoubleType, nullable = true),
+//      StructField("b8_7d_ecpm", DoubleType, nullable = true),
+//      StructField("b8_7d_click", DoubleType, nullable = true),
+//      StructField("b8_7d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_7d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_today_ctr", DoubleType, nullable = true),
+//      StructField("b8_today_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_today_cvr", DoubleType, nullable = true),
+//      StructField("b8_today_conver", DoubleType, nullable = true),
+//      StructField("b8_today_ecpm", DoubleType, nullable = true),
+//      StructField("b8_today_click", DoubleType, nullable = true),
+//      StructField("b8_today_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b8_today_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_today_click", DoubleType, nullable = true),
+//      StructField("b2_today_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b2_today_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_yesterday_ctr", DoubleType, nullable = true),
+//      StructField("b2_yesterday_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_yesterday_cvr", DoubleType, nullable = true),
+//      StructField("b2_yesterday_conver", DoubleType, nullable = true),
+//      StructField("b2_yesterday_ecpm", DoubleType, nullable = true),
+//      StructField("b2_yesterday_click", DoubleType, nullable = true),
+//      StructField("b2_yesterday_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b2_yesterday_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_1h_ctr", DoubleType, nullable = true),
+//      StructField("b3_1h_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_1h_cvr", DoubleType, nullable = true),
+//      StructField("b3_1h_conver", DoubleType, nullable = true),
+//      StructField("b3_1h_ecpm", DoubleType, nullable = true),
+//      StructField("b3_1h_click", DoubleType, nullable = true),
+//      StructField("b3_1h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b3_1h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_2h_ctr", DoubleType, nullable = true),
+//      StructField("b3_2h_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_2h_cvr", DoubleType, nullable = true),
+//      StructField("b3_2h_conver", DoubleType, nullable = true),
+//      StructField("b3_2h_ecpm", DoubleType, nullable = true),
+//      StructField("b3_2h_click", DoubleType, nullable = true),
+//      StructField("b3_2h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b3_2h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_3h_ctr", DoubleType, nullable = true),
+//      StructField("b3_3h_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_3h_cvr", DoubleType, nullable = true),
+//      StructField("b3_3h_conver", DoubleType, nullable = true),
+//      StructField("b3_3h_ecpm", DoubleType, nullable = true),
+//      StructField("b3_3h_click", DoubleType, nullable = true),
+//      StructField("b3_3h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b3_3h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_4h_ctr", DoubleType, nullable = true),
+//      StructField("b3_4h_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_4h_cvr", DoubleType, nullable = true),
+//      StructField("b3_4h_conver", DoubleType, nullable = true),
+//      StructField("b3_4h_ecpm", DoubleType, nullable = true),
+//      StructField("b3_4h_click", DoubleType, nullable = true),
+//      StructField("b3_4h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b3_4h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_5h_ctr", DoubleType, nullable = true),
+//      StructField("b3_5h_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_5h_cvr", DoubleType, nullable = true),
+//      StructField("b3_5h_conver", DoubleType, nullable = true),
+//      StructField("b3_5h_ecpm", DoubleType, nullable = true),
+//      StructField("b3_5h_click", DoubleType, nullable = true),
+//      StructField("b3_5h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b3_5h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_6h_ctr", DoubleType, nullable = true),
+//      StructField("b3_6h_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_6h_cvr", DoubleType, nullable = true),
+//      StructField("b3_6h_conver", DoubleType, nullable = true),
+//      StructField("b3_6h_ecpm", DoubleType, nullable = true),
+//      StructField("b3_6h_click", DoubleType, nullable = true),
+//      StructField("b3_6h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b3_6h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_12h_ctr", DoubleType, nullable = true),
+//      StructField("b3_12h_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_12h_cvr", DoubleType, nullable = true),
+//      StructField("b3_12h_conver", DoubleType, nullable = true),
+//      StructField("b3_12h_ecpm", DoubleType, nullable = true),
+//      StructField("b3_12h_click", DoubleType, nullable = true),
+//      StructField("b3_12h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b3_12h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_1d_ctr", DoubleType, nullable = true),
+//      StructField("b3_1d_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_1d_cvr", DoubleType, nullable = true),
+//      StructField("b3_1d_conver", DoubleType, nullable = true),
+//      StructField("b3_1d_ecpm", DoubleType, nullable = true),
+//      StructField("b3_1d_click", DoubleType, nullable = true),
+//      StructField("b3_1d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b3_1d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_3d_ctr", DoubleType, nullable = true),
+//      StructField("b3_3d_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_3d_cvr", DoubleType, nullable = true),
+//      StructField("b3_3d_conver", DoubleType, nullable = true),
+//      StructField("b3_3d_ecpm", DoubleType, nullable = true),
+//      StructField("b3_3d_click", DoubleType, nullable = true),
+//      StructField("b3_3d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b3_3d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_7d_ctr", DoubleType, nullable = true),
+//      StructField("b3_7d_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_7d_cvr", DoubleType, nullable = true),
+//      StructField("b3_7d_conver", DoubleType, nullable = true),
+//      StructField("b3_7d_ecpm", DoubleType, nullable = true),
+//      StructField("b3_7d_click", DoubleType, nullable = true),
+//      StructField("b3_7d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b3_7d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_today_ctr", DoubleType, nullable = true),
+//      StructField("b3_today_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_today_cvr", DoubleType, nullable = true),
+//      StructField("b3_today_conver", DoubleType, nullable = true),
+//      StructField("b3_today_ecpm", DoubleType, nullable = true),
+//      StructField("b3_today_click", DoubleType, nullable = true),
+//      StructField("b3_today_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b3_today_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_yesterday_ctr", DoubleType, nullable = true),
+//      StructField("b3_yesterday_ctcvr", DoubleType, nullable = true),
+//      StructField("b3_yesterday_cvr", DoubleType, nullable = true),
+//      StructField("b3_yesterday_conver", DoubleType, nullable = true),
+//      StructField("b3_yesterday_ecpm", DoubleType, nullable = true),
+//      StructField("b3_yesterday_click", DoubleType, nullable = true),
+//      StructField("b3_yesterday_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b3_yesterday_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_1h_ctr", DoubleType, nullable = true),
+//      StructField("b4_1h_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_1h_cvr", DoubleType, nullable = true),
+//      StructField("b4_1h_conver", DoubleType, nullable = true),
+//      StructField("b4_1h_ecpm", DoubleType, nullable = true),
+//      StructField("b4_1h_click", DoubleType, nullable = true),
+//      StructField("b4_1h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b4_1h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_2h_ctr", DoubleType, nullable = true),
+//      StructField("b4_2h_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_2h_cvr", DoubleType, nullable = true),
+//      StructField("b4_2h_conver", DoubleType, nullable = true),
+//      StructField("b4_2h_ecpm", DoubleType, nullable = true),
+//      StructField("b4_2h_click", DoubleType, nullable = true),
+//      StructField("b4_2h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b4_2h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_3h_ctr", DoubleType, nullable = true),
+//      StructField("b4_3h_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_3h_cvr", DoubleType, nullable = true),
+//      StructField("b4_3h_conver", DoubleType, nullable = true),
+//      StructField("b4_3h_ecpm", DoubleType, nullable = true),
+//      StructField("b4_3h_click", DoubleType, nullable = true),
+//      StructField("b9_7d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b9_7d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_today_ctr", DoubleType, nullable = true),
+//      StructField("b9_today_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_today_cvr", DoubleType, nullable = true),
+//      StructField("b9_today_conver", DoubleType, nullable = true),
+//      StructField("b9_today_ecpm", DoubleType, nullable = true),
+//      StructField("b9_today_click", DoubleType, nullable = true),
+//      StructField("b9_today_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b9_today_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_yesterday_ctr", DoubleType, nullable = true),
+//      StructField("b9_yesterday_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_yesterday_cvr", DoubleType, nullable = true),
+//      StructField("b9_yesterday_conver", DoubleType, nullable = true),
+//      StructField("b9_yesterday_ecpm", DoubleType, nullable = true),
+//      StructField("b9_yesterday_click", DoubleType, nullable = true),
+//      StructField("b9_yesterday_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b9_yesterday_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b6_7d_ctr", DoubleType, nullable = true),
+//      StructField("b6_7d_ctcvr", DoubleType, nullable = true),
+//      StructField("b6_7d_cvr", DoubleType, nullable = true),
+//      StructField("b6_7d_conver", DoubleType, nullable = true),
+//      StructField("b6_7d_ecpm", DoubleType, nullable = true),
+//      StructField("b6_7d_click", DoubleType, nullable = true),
+//      StructField("b6_7d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b6_7d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b6_14d_ctr", DoubleType, nullable = true),
+//      StructField("b6_14d_ctcvr", DoubleType, nullable = true),
+//      StructField("b6_14d_cvr", DoubleType, nullable = true),
+//      StructField("b6_14d_conver", DoubleType, nullable = true),
+//      StructField("b6_14d_ecpm", DoubleType, nullable = true),
+//      StructField("b6_14d_click", DoubleType, nullable = true),
+//      StructField("b6_14d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b6_14d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b7_7d_ctr", DoubleType, nullable = true),
+//      StructField("b7_7d_ctcvr", DoubleType, nullable = true),
+//      StructField("b7_7d_cvr", DoubleType, nullable = true),
+//      StructField("b7_7d_conver", DoubleType, nullable = true),
+//      StructField("b7_7d_ecpm", DoubleType, nullable = true),
+//      StructField("b7_7d_click", DoubleType, nullable = true),
+//      StructField("b7_7d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b7_7d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b7_14d_ctr", DoubleType, nullable = true),
+//      StructField("b5_12h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_1d_ctr", DoubleType, nullable = true),
+//      StructField("b5_1d_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_1d_cvr", DoubleType, nullable = true),
+//      StructField("b5_1d_conver", DoubleType, nullable = true),
+//      StructField("b5_1d_ecpm", DoubleType, nullable = true),
+//      StructField("b5_1d_click", DoubleType, nullable = true),
+//      StructField("b5_1d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b5_1d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_3d_ctr", DoubleType, nullable = true),
+//      StructField("b5_3d_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_3d_cvr", DoubleType, nullable = true),
+//      StructField("b5_3d_conver", DoubleType, nullable = true),
+//      StructField("b5_3d_ecpm", DoubleType, nullable = true),
+//      StructField("b5_3d_click", DoubleType, nullable = true),
+//      StructField("b5_3d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b5_3d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_7d_ctr", DoubleType, nullable = true),
+//      StructField("b5_7d_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_7d_cvr", DoubleType, nullable = true),
+//      StructField("b5_7d_conver", DoubleType, nullable = true),
+//      StructField("b5_7d_ecpm", DoubleType, nullable = true),
+//      StructField("b5_7d_click", DoubleType, nullable = true),
+//      StructField("b5_7d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b5_7d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_today_ctr", DoubleType, nullable = true),
+//      StructField("b5_today_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_today_cvr", DoubleType, nullable = true),
+//      StructField("b5_today_conver", DoubleType, nullable = true),
+//      StructField("b5_today_ecpm", DoubleType, nullable = true),
+//      StructField("b5_today_click", DoubleType, nullable = true),
+//      StructField("b5_today_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b5_today_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_yesterday_ctr", DoubleType, nullable = true),
+//      StructField("b5_yesterday_ctcvr", DoubleType, nullable = true),
+//      StructField("b5_yesterday_cvr", DoubleType, nullable = true),
+//      StructField("b5_yesterday_conver", DoubleType, nullable = true),
+//      StructField("b5_yesterday_ecpm", DoubleType, nullable = true),
+//      StructField("b5_yesterday_click", DoubleType, nullable = true),
+//      StructField("b5_yesterday_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b5_yesterday_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b8_1h_ctr", DoubleType, nullable = true),
+//      StructField("b8_1h_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_3h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b4_3h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_4h_ctr", DoubleType, nullable = true),
+//      StructField("b4_4h_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_4h_cvr", DoubleType, nullable = true),
+//      StructField("b4_4h_conver", DoubleType, nullable = true),
+//      StructField("b4_4h_ecpm", DoubleType, nullable = true),
+//      StructField("b4_4h_click", DoubleType, nullable = true),
+//      StructField("b4_4h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b4_4h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_5h_ctr", DoubleType, nullable = true),
+//      StructField("b4_5h_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_5h_cvr", DoubleType, nullable = true),
+//      StructField("b4_5h_conver", DoubleType, nullable = true),
+//      StructField("b4_5h_ecpm", DoubleType, nullable = true),
+//      StructField("b4_5h_click", DoubleType, nullable = true),
+//      StructField("b4_5h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b4_5h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_6h_ctr", DoubleType, nullable = true),
+//      StructField("b4_6h_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_6h_cvr", DoubleType, nullable = true),
+//      StructField("b4_6h_conver", DoubleType, nullable = true),
+//      StructField("b4_6h_ecpm", DoubleType, nullable = true),
+//      StructField("b4_6h_click", DoubleType, nullable = true),
+//      StructField("b4_6h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b4_6h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_12h_ctr", DoubleType, nullable = true),
+//      StructField("b4_12h_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_12h_cvr", DoubleType, nullable = true),
+//      StructField("b4_12h_conver", DoubleType, nullable = true),
+//      StructField("b4_12h_ecpm", DoubleType, nullable = true),
+//      StructField("b4_12h_click", DoubleType, nullable = true),
+//      StructField("b4_12h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b4_12h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_1d_ctr", DoubleType, nullable = true),
+//      StructField("b4_1d_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_1d_cvr", DoubleType, nullable = true),
+//      StructField("b4_1d_conver", DoubleType, nullable = true),
+//      StructField("b4_1d_ecpm", DoubleType, nullable = true),
+//      StructField("b4_1d_click", DoubleType, nullable = true),
+//      StructField("b4_1d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b4_1d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b4_3d_ctr", DoubleType, nullable = true),
+//      StructField("b2_6h_cvr", DoubleType, nullable = true),
+//      StructField("b2_6h_conver", DoubleType, nullable = true),
+//      StructField("b2_6h_ecpm", DoubleType, nullable = true),
+//      StructField("b2_6h_click", DoubleType, nullable = true),
+//      StructField("b2_6h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b2_6h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_12h_ctr", DoubleType, nullable = true),
+//      StructField("b2_12h_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_12h_cvr", DoubleType, nullable = true),
+//      StructField("b2_12h_conver", DoubleType, nullable = true),
+//      StructField("b2_12h_ecpm", DoubleType, nullable = true),
+//      StructField("b2_12h_click", DoubleType, nullable = true),
+//      StructField("b2_12h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b2_12h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_1d_ctr", DoubleType, nullable = true),
+//      StructField("b2_1d_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_1d_cvr", DoubleType, nullable = true),
+//      StructField("b2_1d_conver", DoubleType, nullable = true),
+//      StructField("b2_1d_ecpm", DoubleType, nullable = true),
+//      StructField("b2_1d_click", DoubleType, nullable = true),
+//      StructField("b2_1d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b2_1d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_3d_ctr", DoubleType, nullable = true),
+//      StructField("b2_3d_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_3d_cvr", DoubleType, nullable = true),
+//      StructField("b2_3d_conver", DoubleType, nullable = true),
+//      StructField("b2_3d_ecpm", DoubleType, nullable = true),
+//      StructField("b2_3d_click", DoubleType, nullable = true),
+//      StructField("b2_3d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b2_3d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_7d_ctr", DoubleType, nullable = true),
+//      StructField("b2_7d_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_7d_cvr", DoubleType, nullable = true),
+//      StructField("b2_7d_conver", DoubleType, nullable = true),
+//      StructField("b2_7d_ecpm", DoubleType, nullable = true),
+//      StructField("b2_7d_click", DoubleType, nullable = true),
+//      StructField("b2_7d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b2_7d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_today_ctr", DoubleType, nullable = true),
+//      StructField("b2_today_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_today_cvr", DoubleType, nullable = true),
+//      StructField("b2_today_conver", DoubleType, nullable = true),
+//      StructField("b2_today_ecpm", DoubleType, nullable = true),
+//      StructField("cpa", DoubleType, nullable = true),
+//      StructField("b2_1h_ctr", DoubleType, nullable = true),
+//      StructField("b2_1h_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_1h_cvr", DoubleType, nullable = true),
+//      StructField("b2_1h_conver", DoubleType, nullable = true),
+//      StructField("b2_1h_ecpm", DoubleType, nullable = true),
+//      StructField("b2_1h_click", DoubleType, nullable = true),
+//      StructField("b2_1h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b2_1h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_2h_ctr", DoubleType, nullable = true),
+//      StructField("b2_2h_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_2h_cvr", DoubleType, nullable = true),
+//      StructField("b2_2h_conver", DoubleType, nullable = true),
+//      StructField("b2_2h_ecpm", DoubleType, nullable = true),
+//      StructField("b2_2h_click", DoubleType, nullable = true),
+//      StructField("b2_2h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b2_2h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_3h_ctr", DoubleType, nullable = true),
+//      StructField("b2_3h_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_3h_cvr", DoubleType, nullable = true),
+//      StructField("b2_3h_conver", DoubleType, nullable = true),
+//      StructField("b2_3h_ecpm", DoubleType, nullable = true),
+//      StructField("b2_3h_click", DoubleType, nullable = true),
+//      StructField("b2_3h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b2_3h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_4h_ctr", DoubleType, nullable = true),
+//      StructField("b2_4h_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_4h_cvr", DoubleType, nullable = true),
+//      StructField("b2_4h_conver", DoubleType, nullable = true),
+//      StructField("b2_4h_ecpm", DoubleType, nullable = true),
+//      StructField("b2_4h_click", DoubleType, nullable = true),
+//      StructField("b2_4h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b2_4h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_5h_ctr", DoubleType, nullable = true),
+//      StructField("b2_5h_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_5h_cvr", DoubleType, nullable = true),
+//      StructField("b2_5h_conver", DoubleType, nullable = true),
+//      StructField("b2_5h_ecpm", DoubleType, nullable = true),
+//      StructField("b2_5h_click", DoubleType, nullable = true),
+//      StructField("b2_5h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b2_5h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b2_6h_ctr", DoubleType, nullable = true),
+//      StructField("b2_6h_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_5h_conver", DoubleType, nullable = true),
+//      StructField("b9_5h_ecpm", DoubleType, nullable = true),
+//      StructField("b9_5h_click", DoubleType, nullable = true),
+//      StructField("b9_5h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b9_5h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_6h_ctr", DoubleType, nullable = true),
+//      StructField("b9_6h_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_6h_cvr", DoubleType, nullable = true),
+//      StructField("b9_6h_conver", DoubleType, nullable = true),
+//      StructField("b9_6h_ecpm", DoubleType, nullable = true),
+//      StructField("b9_6h_click", DoubleType, nullable = true),
+//      StructField("b9_6h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b9_6h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_12h_ctr", DoubleType, nullable = true),
+//      StructField("b9_12h_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_12h_cvr", DoubleType, nullable = true),
+//      StructField("b9_12h_conver", DoubleType, nullable = true),
+//      StructField("b9_12h_ecpm", DoubleType, nullable = true),
+//      StructField("b9_12h_click", DoubleType, nullable = true),
+//      StructField("b9_12h_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b9_12h_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_1d_ctr", DoubleType, nullable = true),
+//      StructField("b9_1d_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_1d_cvr", DoubleType, nullable = true),
+//      StructField("b9_1d_conver", DoubleType, nullable = true),
+//      StructField("b9_1d_ecpm", DoubleType, nullable = true),
+//      StructField("b9_1d_click", DoubleType, nullable = true),
+//      StructField("b9_1d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b9_1d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_3d_ctr", DoubleType, nullable = true),
+//      StructField("b9_3d_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_3d_cvr", DoubleType, nullable = true),
+//      StructField("b9_3d_conver", DoubleType, nullable = true),
+//      StructField("b9_3d_ecpm", DoubleType, nullable = true),
+//      StructField("b9_3d_click", DoubleType, nullable = true),
+//      StructField("b9_3d_conver_x_log_view", DoubleType, nullable = true),
+//      StructField("b9_3d_conver_x_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_7d_ctr", DoubleType, nullable = true),
+//      StructField("b9_7d_ctcvr", DoubleType, nullable = true),
+//      StructField("b9_7d_cvr", DoubleType, nullable = true),
+//      StructField("b9_7d_conver", DoubleType, nullable = true),
+//      StructField("b9_7d_ecpm", DoubleType, nullable = true),
+//      StructField("b9_7d_click", DoubleType, nullable = true),
+//      StructField("weight", DoubleType, nullable = true),
+//      StructField("dt", StringType, nullable = true)
+//    ))
+//
+//
+//    // 创建 DataFrame
+//    val df = spark.createDataFrame(spark.sparkContext.parallelize(rows), schema)
+//    df.write.mode("append").saveAsTable(table)
+//  }
+//
+//
+//  private def processString(input: String): Map[String, Any] = {
+//    // 去除多余空格并按空格分割成键值对数组
+//    val parts = input.trim.split("\\s+")
+//    var resultMap = Map[String, Any]()
+//    // 处理第一个元素,假设为特殊标识
+//    resultMap += ("has_conversion" -> parts(0))
+//    // 处理后续的键值对
+//    parts.drop(1).foreach { part =>
+//      part.split(":", 2) match {
+//        case Array(keyStr, valueStr) =>
+//          val key = keyStr.replace("*", "_x_").replace("(view)", "_view")
+//          val value = try {
+//            valueStr.toDouble
+//          } catch {
+//            case _: NumberFormatException => valueStr
+//          }
+//          resultMap += (key -> value)
+//        case _ => // 若无法解析成键值对则丢弃
+//      }
+//    }
+//    resultMap
+//  }
+//}

+ 701 - 698
src/main/scala/com/aliyun/odps/spark/examples/makedata_ad/v20240718/makedata_ad_32_bucket_hive_test.scala

@@ -1,7 +1,8 @@
 package com.aliyun.odps.spark.examples.makedata_ad.v20240718
 
 import com.alibaba.fastjson.JSON
-import com.aliyun.odps.spark.examples.myUtils.ParamUtils
+import com.aliyun.odps.spark.examples.makedata_ad.v20240718.makedata_ad_31_originData_20240718.func
+import com.aliyun.odps.spark.examples.myUtils.{ParamUtils, env}
 import org.apache.spark.sql.types._
 import org.apache.spark.sql.{Row, SparkSession}
 
@@ -19,11 +20,13 @@ object makedata_ad_32_bucket_hive_test {
     val spark = SparkSession
       .builder()
       .appName(this.getClass.getName)
+      .enableHiveSupport() // 启用 Hive 支持
       .getOrCreate()
     val sc = spark.sparkContext
 
     // 1 读取参数
     val param = ParamUtils.parseArgs(args)
+    val project = param.getOrElse("project", "loghubods")
     val table = param.getOrElse("table", "ad_easyrec_train_data_v1")
 
     val result = new ArrayBuffer[String]()
@@ -733,705 +736,705 @@ object makedata_ad_32_bucket_hive_test {
 
     println(rows)
 
-    val schema = StructType(Seq(
-      StructField("has_click", LongType, true),
-      StructField("has_conversion", LongType, true),
-      StructField("b8_yesterday_ctr", DoubleType, true),
-      StructField("b8_yesterday_ctcvr", DoubleType, true),
-      StructField("b8_yesterday_cvr", DoubleType, true),
-      StructField("b8_yesterday_conver", DoubleType, true),
-      StructField("b8_yesterday_ecpm", DoubleType, true),
-      StructField("b8_yesterday_click", DoubleType, true),
-      StructField("b8_yesterday_conver_x_log_view", DoubleType, true),
-      StructField("b8_yesterday_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_1h_ctr", DoubleType, true),
-      StructField("b9_1h_ctcvr", DoubleType, true),
-      StructField("b9_1h_cvr", DoubleType, true),
-      StructField("b9_1h_conver", DoubleType, true),
-      StructField("b9_1h_ecpm", DoubleType, true),
-      StructField("b9_1h_click", DoubleType, true),
-      StructField("b9_1h_conver_x_log_view", DoubleType, true),
-      StructField("b9_1h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_2h_ctr", DoubleType, true),
-      StructField("b9_2h_ctcvr", DoubleType, true),
-      StructField("b9_2h_cvr", DoubleType, true),
-      StructField("b9_2h_conver", DoubleType, true),
-      StructField("b9_2h_ecpm", DoubleType, true),
-      StructField("b9_2h_click", DoubleType, true),
-      StructField("b9_2h_conver_x_log_view", DoubleType, true),
-      StructField("b9_2h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_3h_ctr", DoubleType, true),
-      StructField("b9_3h_ctcvr", DoubleType, true),
-      StructField("b9_3h_cvr", DoubleType, true),
-      StructField("b9_3h_conver", DoubleType, true),
-      StructField("b9_3h_ecpm", DoubleType, true),
-      StructField("b9_3h_click", DoubleType, true),
-      StructField("b9_3h_conver_x_log_view", DoubleType, true),
-      StructField("b9_3h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_4h_ctr", DoubleType, true),
-      StructField("b9_4h_ctcvr", DoubleType, true),
-      StructField("b9_4h_cvr", DoubleType, true),
-      StructField("b9_4h_conver", DoubleType, true),
-      StructField("b9_4h_ecpm", DoubleType, true),
-      StructField("b9_4h_click", DoubleType, true),
-      StructField("b9_4h_conver_x_log_view", DoubleType, true),
-      StructField("b9_4h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_5h_ctr", DoubleType, true),
-      StructField("b9_5h_ctcvr", DoubleType, true),
-      StructField("b9_5h_cvr", DoubleType, true),
-      StructField("b7_14d_ctcvr", DoubleType, true),
-      StructField("b7_14d_cvr", DoubleType, true),
-      StructField("b7_14d_conver", DoubleType, true),
-      StructField("b7_14d_ecpm", DoubleType, true),
-      StructField("b7_14d_click", DoubleType, true),
-      StructField("b7_14d_conver_x_log_view", DoubleType, true),
-      StructField("b7_14d_conver_x_ctcvr", DoubleType, true),
-      StructField("viewall", DoubleType, true),
-      StructField("clickall", DoubleType, true),
-      StructField("converall", DoubleType, true),
-      StructField("incomeall", DoubleType, true),
-      StructField("ctr_all", DoubleType, true),
-      StructField("ctcvr_all", DoubleType, true),
-      StructField("cvr_all", DoubleType, true),
-      StructField("ecpm_all", DoubleType, true),
-      StructField("timediff_view", DoubleType, true),
-      StructField("timediff_click", DoubleType, true),
-      StructField("timediff_conver", DoubleType, true),
-      StructField("actionstatic_view", DoubleType, true),
-      StructField("actionstatic_click", DoubleType, true),
-      StructField("actionstatic_conver", DoubleType, true),
-      StructField("actionstatic_income", DoubleType, true),
-      StructField("actionstatic_ctr", DoubleType, true),
-      StructField("actionstatic_ctcvr", DoubleType, true),
-      StructField("actionstatic_cvr", DoubleType, true),
-      StructField("e1_tags_3d_matchnum", DoubleType, true),
-      StructField("e1_tags_3d_maxscore", DoubleType, true),
-      StructField("e1_tags_3d_avgscore", DoubleType, true),
-      StructField("e1_tags_7d_matchnum", DoubleType, true),
-      StructField("e1_tags_7d_maxscore", DoubleType, true),
-      StructField("e1_tags_7d_avgscore", DoubleType, true),
-      StructField("e1_tags_14d_matchnum", DoubleType, true),
-      StructField("e1_tags_14d_maxscore", DoubleType, true),
-      StructField("e1_tags_14d_avgscore", DoubleType, true),
-      StructField("e2_tags_3d_matchnum", DoubleType, true),
-      StructField("e2_tags_3d_maxscore", DoubleType, true),
-      StructField("e2_tags_3d_avgscore", DoubleType, true),
-      StructField("e2_tags_7d_matchnum", DoubleType, true),
-      StructField("e2_tags_7d_maxscore", DoubleType, true),
-      StructField("e2_tags_7d_avgscore", DoubleType, true),
-      StructField("e2_tags_14d_matchnum", DoubleType, true),
-      StructField("e2_tags_14d_maxscore", DoubleType, true),
-      StructField("e2_tags_14d_avgscore", DoubleType, true),
-      StructField("b8_1h_cvr", DoubleType, true),
-      StructField("b8_1h_conver", DoubleType, true),
-      StructField("b8_1h_ecpm", DoubleType, true),
-      StructField("b8_1h_click", DoubleType, true),
-      StructField("b8_1h_conver_x_log_view", DoubleType, true),
-      StructField("b8_1h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_2h_ctr", DoubleType, true),
-      StructField("b8_2h_ctcvr", DoubleType, true),
-      StructField("b8_2h_cvr", DoubleType, true),
-      StructField("b8_2h_conver", DoubleType, true),
-      StructField("b8_2h_ecpm", DoubleType, true),
-      StructField("b8_2h_click", DoubleType, true),
-      StructField("b8_2h_conver_x_log_view", DoubleType, true),
-      StructField("b8_2h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_3h_ctr", DoubleType, true),
-      StructField("b8_3h_ctcvr", DoubleType, true),
-      StructField("b8_3h_cvr", DoubleType, true),
-      StructField("b8_3h_conver", DoubleType, true),
-      StructField("b8_3h_ecpm", DoubleType, true),
-      StructField("b8_3h_click", DoubleType, true),
-      StructField("b8_3h_conver_x_log_view", DoubleType, true),
-      StructField("b8_3h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_4h_ctr", DoubleType, true),
-      StructField("b8_4h_ctcvr", DoubleType, true),
-      StructField("b8_4h_cvr", DoubleType, true),
-      StructField("b8_4h_conver", DoubleType, true),
-      StructField("b8_4h_ecpm", DoubleType, true),
-      StructField("b8_4h_click", DoubleType, true),
-      StructField("b8_4h_conver_x_log_view", DoubleType, true),
-      StructField("b8_4h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_5h_ctr", DoubleType, true),
-      StructField("b8_5h_ctcvr", DoubleType, true),
-      StructField("b8_5h_cvr", DoubleType, true),
-      StructField("b8_5h_conver", DoubleType, true),
-      StructField("b8_5h_ecpm", DoubleType, true),
-      StructField("b8_5h_click", DoubleType, true),
-      StructField("b8_5h_conver_x_log_view", DoubleType, true),
-      StructField("b8_5h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_6h_ctr", DoubleType, true),
-      StructField("b8_6h_ctcvr", DoubleType, true),
-      StructField("b8_6h_cvr", DoubleType, true),
-      StructField("b8_6h_conver", DoubleType, true),
-      StructField("b8_6h_ecpm", DoubleType, true),
-      StructField("b4_3d_ctcvr", DoubleType, true),
-      StructField("b4_3d_cvr", DoubleType, true),
-      StructField("b4_3d_conver", DoubleType, true),
-      StructField("b4_3d_ecpm", DoubleType, true),
-      StructField("b4_3d_click", DoubleType, true),
-      StructField("b4_3d_conver_x_log_view", DoubleType, true),
-      StructField("b4_3d_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_7d_ctr", DoubleType, true),
-      StructField("b4_7d_ctcvr", DoubleType, true),
-      StructField("b4_7d_cvr", DoubleType, true),
-      StructField("b4_7d_conver", DoubleType, true),
-      StructField("b4_7d_ecpm", DoubleType, true),
-      StructField("b4_7d_click", DoubleType, true),
-      StructField("b4_7d_conver_x_log_view", DoubleType, true),
-      StructField("b4_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_today_ctr", DoubleType, true),
-      StructField("b4_today_ctcvr", DoubleType, true),
-      StructField("b4_today_cvr", DoubleType, true),
-      StructField("b4_today_conver", DoubleType, true),
-      StructField("b4_today_ecpm", DoubleType, true),
-      StructField("b4_today_click", DoubleType, true),
-      StructField("b4_today_conver_x_log_view", DoubleType, true),
-      StructField("b4_today_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_yesterday_ctr", DoubleType, true),
-      StructField("b4_yesterday_ctcvr", DoubleType, true),
-      StructField("b4_yesterday_cvr", DoubleType, true),
-      StructField("b4_yesterday_conver", DoubleType, true),
-      StructField("b4_yesterday_ecpm", DoubleType, true),
-      StructField("b4_yesterday_click", DoubleType, true),
-      StructField("b4_yesterday_conver_x_log_view", DoubleType, true),
-      StructField("b4_yesterday_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_1h_ctr", DoubleType, true),
-      StructField("b5_1h_ctcvr", DoubleType, true),
-      StructField("b5_1h_cvr", DoubleType, true),
-      StructField("b5_1h_conver", DoubleType, true),
-      StructField("b5_1h_ecpm", DoubleType, true),
-      StructField("b5_1h_click", DoubleType, true),
-      StructField("b5_1h_conver_x_log_view", DoubleType, true),
-      StructField("b5_1h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_2h_ctr", DoubleType, true),
-      StructField("b5_2h_ctcvr", DoubleType, true),
-      StructField("b5_2h_cvr", DoubleType, true),
-      StructField("b5_2h_conver", DoubleType, true),
-      StructField("d1_feature_3h_ctr", DoubleType, true),
-      StructField("d1_feature_3h_ctcvr", DoubleType, true),
-      StructField("d1_feature_3h_cvr", DoubleType, true),
-      StructField("d1_feature_3h_conver", DoubleType, true),
-      StructField("d1_feature_3h_ecpm", DoubleType, true),
-      StructField("d1_feature_6h_ctr", DoubleType, true),
-      StructField("d1_feature_6h_ctcvr", DoubleType, true),
-      StructField("d1_feature_6h_cvr", DoubleType, true),
-      StructField("d1_feature_6h_conver", DoubleType, true),
-      StructField("d1_feature_6h_ecpm", DoubleType, true),
-      StructField("d1_feature_12h_ctr", DoubleType, true),
-      StructField("d1_feature_12h_ctcvr", DoubleType, true),
-      StructField("d1_feature_12h_cvr", DoubleType, true),
-      StructField("d1_feature_12h_conver", DoubleType, true),
-      StructField("d1_feature_12h_ecpm", DoubleType, true),
-      StructField("d1_feature_1d_ctr", DoubleType, true),
-      StructField("d1_feature_1d_ctcvr", DoubleType, true),
-      StructField("d1_feature_1d_cvr", DoubleType, true),
-      StructField("d1_feature_1d_conver", DoubleType, true),
-      StructField("d1_feature_1d_ecpm", DoubleType, true),
-      StructField("d1_feature_3d_ctr", DoubleType, true),
-      StructField("d1_feature_3d_ctcvr", DoubleType, true),
-      StructField("d1_feature_3d_cvr", DoubleType, true),
-      StructField("d1_feature_3d_conver", DoubleType, true),
-      StructField("d1_feature_3d_ecpm", DoubleType, true),
-      StructField("d1_feature_7d_ctr", DoubleType, true),
-      StructField("d1_feature_7d_ctcvr", DoubleType, true),
-      StructField("d1_feature_7d_cvr", DoubleType, true),
-      StructField("d1_feature_7d_conver", DoubleType, true),
-      StructField("d1_feature_7d_ecpm", DoubleType, true),
-      StructField("vid_rank_ctr_1d", DoubleType, true),
-      StructField("vid_rank_ctr_3d", DoubleType, true),
-      StructField("vid_rank_ctr_7d", DoubleType, true),
-      StructField("vid_rank_ctr_14d", DoubleType, true),
-      StructField("vid_rank_ctcvr_1d", DoubleType, true),
-      StructField("vid_rank_ctcvr_3d", DoubleType, true),
-      StructField("vid_rank_ctcvr_7d", DoubleType, true),
-      StructField("vid_rank_ctcvr_14d", DoubleType, true),
-      StructField("vid_rank_ecpm_1d", DoubleType, true),
-      StructField("vid_rank_ecpm_3d", DoubleType, true),
-      StructField("vid_rank_ecpm_7d", DoubleType, true),
-      StructField("vid_rank_ecpm_14d", DoubleType, true),
-      StructField("ctitle_vtitle_similarity", DoubleType, true),
-      StructField("b5_2h_ecpm", DoubleType, true),
-      StructField("b5_2h_click", DoubleType, true),
-      StructField("b5_2h_conver_x_log_view", DoubleType, true),
-      StructField("b5_2h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_3h_ctr", DoubleType, true),
-      StructField("b5_3h_ctcvr", DoubleType, true),
-      StructField("b5_3h_cvr", DoubleType, true),
-      StructField("b5_3h_conver", DoubleType, true),
-      StructField("b5_3h_ecpm", DoubleType, true),
-      StructField("b5_3h_click", DoubleType, true),
-      StructField("b5_3h_conver_x_log_view", DoubleType, true),
-      StructField("b5_3h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_4h_ctr", DoubleType, true),
-      StructField("b5_4h_ctcvr", DoubleType, true),
-      StructField("b5_4h_cvr", DoubleType, true),
-      StructField("b5_4h_conver", DoubleType, true),
-      StructField("b5_4h_ecpm", DoubleType, true),
-      StructField("b5_4h_click", DoubleType, true),
-      StructField("b5_4h_conver_x_log_view", DoubleType, true),
-      StructField("b5_4h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_5h_ctr", DoubleType, true),
-      StructField("b5_5h_ctcvr", DoubleType, true),
-      StructField("b5_5h_cvr", DoubleType, true),
-      StructField("b5_5h_conver", DoubleType, true),
-      StructField("b5_5h_ecpm", DoubleType, true),
-      StructField("b5_5h_click", DoubleType, true),
-      StructField("b5_5h_conver_x_log_view", DoubleType, true),
-      StructField("b5_5h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_6h_ctr", DoubleType, true),
-      StructField("b5_6h_ctcvr", DoubleType, true),
-      StructField("b5_6h_cvr", DoubleType, true),
-      StructField("b5_6h_conver", DoubleType, true),
-      StructField("b5_6h_ecpm", DoubleType, true),
-      StructField("b5_6h_click", DoubleType, true),
-      StructField("b5_6h_conver_x_log_view", DoubleType, true),
-      StructField("b5_6h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_12h_ctr", DoubleType, true),
-      StructField("b5_12h_ctcvr", DoubleType, true),
-      StructField("b5_12h_cvr", DoubleType, true),
-      StructField("b5_12h_conver", DoubleType, true),
-      StructField("b5_12h_ecpm", DoubleType, true),
-      StructField("b5_12h_click", DoubleType, true),
-      StructField("b5_12h_conver_x_log_view", DoubleType, true),
-      StructField("b8_6h_click", DoubleType, true),
-      StructField("b8_6h_conver_x_log_view", DoubleType, true),
-      StructField("b8_6h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_12h_ctr", DoubleType, true),
-      StructField("b8_12h_ctcvr", DoubleType, true),
-      StructField("b8_12h_cvr", DoubleType, true),
-      StructField("b8_12h_conver", DoubleType, true),
-      StructField("b8_12h_ecpm", DoubleType, true),
-      StructField("b8_12h_click", DoubleType, true),
-      StructField("b8_12h_conver_x_log_view", DoubleType, true),
-      StructField("b8_12h_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_1d_ctr", DoubleType, true),
-      StructField("b8_1d_ctcvr", DoubleType, true),
-      StructField("b8_1d_cvr", DoubleType, true),
-      StructField("b8_1d_conver", DoubleType, true),
-      StructField("b8_1d_ecpm", DoubleType, true),
-      StructField("b8_1d_click", DoubleType, true),
-      StructField("b8_1d_conver_x_log_view", DoubleType, true),
-      StructField("b8_1d_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_3d_ctr", DoubleType, true),
-      StructField("b8_3d_ctcvr", DoubleType, true),
-      StructField("b8_3d_cvr", DoubleType, true),
-      StructField("b8_3d_conver", DoubleType, true),
-      StructField("b8_3d_ecpm", DoubleType, true),
-      StructField("b8_3d_click", DoubleType, true),
-      StructField("b8_3d_conver_x_log_view", DoubleType, true),
-      StructField("b8_3d_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_7d_ctr", DoubleType, true),
-      StructField("b8_7d_ctcvr", DoubleType, true),
-      StructField("b8_7d_cvr", DoubleType, true),
-      StructField("b8_7d_conver", DoubleType, true),
-      StructField("b8_7d_ecpm", DoubleType, true),
-      StructField("b8_7d_click", DoubleType, true),
-      StructField("b8_7d_conver_x_log_view", DoubleType, true),
-      StructField("b8_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_today_ctr", DoubleType, true),
-      StructField("b8_today_ctcvr", DoubleType, true),
-      StructField("b8_today_cvr", DoubleType, true),
-      StructField("b8_today_conver", DoubleType, true),
-      StructField("b8_today_ecpm", DoubleType, true),
-      StructField("b8_today_click", DoubleType, true),
-      StructField("b8_today_conver_x_log_view", DoubleType, true),
-      StructField("b8_today_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_today_click", DoubleType, true),
-      StructField("b2_today_conver_x_log_view", DoubleType, true),
-      StructField("b2_today_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_yesterday_ctr", DoubleType, true),
-      StructField("b2_yesterday_ctcvr", DoubleType, true),
-      StructField("b2_yesterday_cvr", DoubleType, true),
-      StructField("b2_yesterday_conver", DoubleType, true),
-      StructField("b2_yesterday_ecpm", DoubleType, true),
-      StructField("b2_yesterday_click", DoubleType, true),
-      StructField("b2_yesterday_conver_x_log_view", DoubleType, true),
-      StructField("b2_yesterday_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_1h_ctr", DoubleType, true),
-      StructField("b3_1h_ctcvr", DoubleType, true),
-      StructField("b3_1h_cvr", DoubleType, true),
-      StructField("b3_1h_conver", DoubleType, true),
-      StructField("b3_1h_ecpm", DoubleType, true),
-      StructField("b3_1h_click", DoubleType, true),
-      StructField("b3_1h_conver_x_log_view", DoubleType, true),
-      StructField("b3_1h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_2h_ctr", DoubleType, true),
-      StructField("b3_2h_ctcvr", DoubleType, true),
-      StructField("b3_2h_cvr", DoubleType, true),
-      StructField("b3_2h_conver", DoubleType, true),
-      StructField("b3_2h_ecpm", DoubleType, true),
-      StructField("b3_2h_click", DoubleType, true),
-      StructField("b3_2h_conver_x_log_view", DoubleType, true),
-      StructField("b3_2h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_3h_ctr", DoubleType, true),
-      StructField("b3_3h_ctcvr", DoubleType, true),
-      StructField("b3_3h_cvr", DoubleType, true),
-      StructField("b3_3h_conver", DoubleType, true),
-      StructField("b3_3h_ecpm", DoubleType, true),
-      StructField("b3_3h_click", DoubleType, true),
-      StructField("b3_3h_conver_x_log_view", DoubleType, true),
-      StructField("b3_3h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_4h_ctr", DoubleType, true),
-      StructField("b3_4h_ctcvr", DoubleType, true),
-      StructField("b3_4h_cvr", DoubleType, true),
-      StructField("b3_4h_conver", DoubleType, true),
-      StructField("b3_4h_ecpm", DoubleType, true),
-      StructField("b3_4h_click", DoubleType, true),
-      StructField("b3_4h_conver_x_log_view", DoubleType, true),
-      StructField("b3_4h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_5h_ctr", DoubleType, true),
-      StructField("b3_5h_ctcvr", DoubleType, true),
-      StructField("b3_5h_cvr", DoubleType, true),
-      StructField("b3_5h_conver", DoubleType, true),
-      StructField("b3_5h_ecpm", DoubleType, true),
-      StructField("b3_5h_click", DoubleType, true),
-      StructField("b3_5h_conver_x_log_view", DoubleType, true),
-      StructField("b3_5h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_6h_ctr", DoubleType, true),
-      StructField("b3_6h_ctcvr", DoubleType, true),
-      StructField("b3_6h_cvr", DoubleType, true),
-      StructField("b3_6h_conver", DoubleType, true),
-      StructField("b3_6h_ecpm", DoubleType, true),
-      StructField("b3_6h_click", DoubleType, true),
-      StructField("b3_6h_conver_x_log_view", DoubleType, true),
-      StructField("b3_6h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_12h_ctr", DoubleType, true),
-      StructField("b3_12h_ctcvr", DoubleType, true),
-      StructField("b3_12h_cvr", DoubleType, true),
-      StructField("b3_12h_conver", DoubleType, true),
-      StructField("b3_12h_ecpm", DoubleType, true),
-      StructField("b3_12h_click", DoubleType, true),
-      StructField("b3_12h_conver_x_log_view", DoubleType, true),
-      StructField("b3_12h_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_1d_ctr", DoubleType, true),
-      StructField("b3_1d_ctcvr", DoubleType, true),
-      StructField("b3_1d_cvr", DoubleType, true),
-      StructField("b3_1d_conver", DoubleType, true),
-      StructField("b3_1d_ecpm", DoubleType, true),
-      StructField("b3_1d_click", DoubleType, true),
-      StructField("b3_1d_conver_x_log_view", DoubleType, true),
-      StructField("b3_1d_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_3d_ctr", DoubleType, true),
-      StructField("b3_3d_ctcvr", DoubleType, true),
-      StructField("b3_3d_cvr", DoubleType, true),
-      StructField("b3_3d_conver", DoubleType, true),
-      StructField("b3_3d_ecpm", DoubleType, true),
-      StructField("b3_3d_click", DoubleType, true),
-      StructField("b3_3d_conver_x_log_view", DoubleType, true),
-      StructField("b3_3d_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_7d_ctr", DoubleType, true),
-      StructField("b3_7d_ctcvr", DoubleType, true),
-      StructField("b3_7d_cvr", DoubleType, true),
-      StructField("b3_7d_conver", DoubleType, true),
-      StructField("b3_7d_ecpm", DoubleType, true),
-      StructField("b3_7d_click", DoubleType, true),
-      StructField("b3_7d_conver_x_log_view", DoubleType, true),
-      StructField("b3_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_today_ctr", DoubleType, true),
-      StructField("b3_today_ctcvr", DoubleType, true),
-      StructField("b3_today_cvr", DoubleType, true),
-      StructField("b3_today_conver", DoubleType, true),
-      StructField("b3_today_ecpm", DoubleType, true),
-      StructField("b3_today_click", DoubleType, true),
-      StructField("b3_today_conver_x_log_view", DoubleType, true),
-      StructField("b3_today_conver_x_ctcvr", DoubleType, true),
-      StructField("b3_yesterday_ctr", DoubleType, true),
-      StructField("b3_yesterday_ctcvr", DoubleType, true),
-      StructField("b3_yesterday_cvr", DoubleType, true),
-      StructField("b3_yesterday_conver", DoubleType, true),
-      StructField("b3_yesterday_ecpm", DoubleType, true),
-      StructField("b3_yesterday_click", DoubleType, true),
-      StructField("b3_yesterday_conver_x_log_view", DoubleType, true),
-      StructField("b3_yesterday_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_1h_ctr", DoubleType, true),
-      StructField("b4_1h_ctcvr", DoubleType, true),
-      StructField("b4_1h_cvr", DoubleType, true),
-      StructField("b4_1h_conver", DoubleType, true),
-      StructField("b4_1h_ecpm", DoubleType, true),
-      StructField("b4_1h_click", DoubleType, true),
-      StructField("b4_1h_conver_x_log_view", DoubleType, true),
-      StructField("b4_1h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_2h_ctr", DoubleType, true),
-      StructField("b4_2h_ctcvr", DoubleType, true),
-      StructField("b4_2h_cvr", DoubleType, true),
-      StructField("b4_2h_conver", DoubleType, true),
-      StructField("b4_2h_ecpm", DoubleType, true),
-      StructField("b4_2h_click", DoubleType, true),
-      StructField("b4_2h_conver_x_log_view", DoubleType, true),
-      StructField("b4_2h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_3h_ctr", DoubleType, true),
-      StructField("b4_3h_ctcvr", DoubleType, true),
-      StructField("b4_3h_cvr", DoubleType, true),
-      StructField("b4_3h_conver", DoubleType, true),
-      StructField("b4_3h_ecpm", DoubleType, true),
-      StructField("b4_3h_click", DoubleType, true),
-      StructField("b9_7d_conver_x_log_view", DoubleType, true),
-      StructField("b9_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_today_ctr", DoubleType, true),
-      StructField("b9_today_ctcvr", DoubleType, true),
-      StructField("b9_today_cvr", DoubleType, true),
-      StructField("b9_today_conver", DoubleType, true),
-      StructField("b9_today_ecpm", DoubleType, true),
-      StructField("b9_today_click", DoubleType, true),
-      StructField("b9_today_conver_x_log_view", DoubleType, true),
-      StructField("b9_today_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_yesterday_ctr", DoubleType, true),
-      StructField("b9_yesterday_ctcvr", DoubleType, true),
-      StructField("b9_yesterday_cvr", DoubleType, true),
-      StructField("b9_yesterday_conver", DoubleType, true),
-      StructField("b9_yesterday_ecpm", DoubleType, true),
-      StructField("b9_yesterday_click", DoubleType, true),
-      StructField("b9_yesterday_conver_x_log_view", DoubleType, true),
-      StructField("b9_yesterday_conver_x_ctcvr", DoubleType, true),
-      StructField("b6_7d_ctr", DoubleType, true),
-      StructField("b6_7d_ctcvr", DoubleType, true),
-      StructField("b6_7d_cvr", DoubleType, true),
-      StructField("b6_7d_conver", DoubleType, true),
-      StructField("b6_7d_ecpm", DoubleType, true),
-      StructField("b6_7d_click", DoubleType, true),
-      StructField("b6_7d_conver_x_log_view", DoubleType, true),
-      StructField("b6_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b6_14d_ctr", DoubleType, true),
-      StructField("b6_14d_ctcvr", DoubleType, true),
-      StructField("b6_14d_cvr", DoubleType, true),
-      StructField("b6_14d_conver", DoubleType, true),
-      StructField("b6_14d_ecpm", DoubleType, true),
-      StructField("b6_14d_click", DoubleType, true),
-      StructField("b6_14d_conver_x_log_view", DoubleType, true),
-      StructField("b6_14d_conver_x_ctcvr", DoubleType, true),
-      StructField("b7_7d_ctr", DoubleType, true),
-      StructField("b7_7d_ctcvr", DoubleType, true),
-      StructField("b7_7d_cvr", DoubleType, true),
-      StructField("b7_7d_conver", DoubleType, true),
-      StructField("b7_7d_ecpm", DoubleType, true),
-      StructField("b7_7d_click", DoubleType, true),
-      StructField("b7_7d_conver_x_log_view", DoubleType, true),
-      StructField("b7_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b7_14d_ctr", DoubleType, true),
-      StructField("b5_12h_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_1d_ctr", DoubleType, true),
-      StructField("b5_1d_ctcvr", DoubleType, true),
-      StructField("b5_1d_cvr", DoubleType, true),
-      StructField("b5_1d_conver", DoubleType, true),
-      StructField("b5_1d_ecpm", DoubleType, true),
-      StructField("b5_1d_click", DoubleType, true),
-      StructField("b5_1d_conver_x_log_view", DoubleType, true),
-      StructField("b5_1d_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_3d_ctr", DoubleType, true),
-      StructField("b5_3d_ctcvr", DoubleType, true),
-      StructField("b5_3d_cvr", DoubleType, true),
-      StructField("b5_3d_conver", DoubleType, true),
-      StructField("b5_3d_ecpm", DoubleType, true),
-      StructField("b5_3d_click", DoubleType, true),
-      StructField("b5_3d_conver_x_log_view", DoubleType, true),
-      StructField("b5_3d_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_7d_ctr", DoubleType, true),
-      StructField("b5_7d_ctcvr", DoubleType, true),
-      StructField("b5_7d_cvr", DoubleType, true),
-      StructField("b5_7d_conver", DoubleType, true),
-      StructField("b5_7d_ecpm", DoubleType, true),
-      StructField("b5_7d_click", DoubleType, true),
-      StructField("b5_7d_conver_x_log_view", DoubleType, true),
-      StructField("b5_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_today_ctr", DoubleType, true),
-      StructField("b5_today_ctcvr", DoubleType, true),
-      StructField("b5_today_cvr", DoubleType, true),
-      StructField("b5_today_conver", DoubleType, true),
-      StructField("b5_today_ecpm", DoubleType, true),
-      StructField("b5_today_click", DoubleType, true),
-      StructField("b5_today_conver_x_log_view", DoubleType, true),
-      StructField("b5_today_conver_x_ctcvr", DoubleType, true),
-      StructField("b5_yesterday_ctr", DoubleType, true),
-      StructField("b5_yesterday_ctcvr", DoubleType, true),
-      StructField("b5_yesterday_cvr", DoubleType, true),
-      StructField("b5_yesterday_conver", DoubleType, true),
-      StructField("b5_yesterday_ecpm", DoubleType, true),
-      StructField("b5_yesterday_click", DoubleType, true),
-      StructField("b5_yesterday_conver_x_log_view", DoubleType, true),
-      StructField("b5_yesterday_conver_x_ctcvr", DoubleType, true),
-      StructField("b8_1h_ctr", DoubleType, true),
-      StructField("b8_1h_ctcvr", DoubleType, true),
-      StructField("b4_3h_conver_x_log_view", DoubleType, true),
-      StructField("b4_3h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_4h_ctr", DoubleType, true),
-      StructField("b4_4h_ctcvr", DoubleType, true),
-      StructField("b4_4h_cvr", DoubleType, true),
-      StructField("b4_4h_conver", DoubleType, true),
-      StructField("b4_4h_ecpm", DoubleType, true),
-      StructField("b4_4h_click", DoubleType, true),
-      StructField("b4_4h_conver_x_log_view", DoubleType, true),
-      StructField("b4_4h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_5h_ctr", DoubleType, true),
-      StructField("b4_5h_ctcvr", DoubleType, true),
-      StructField("b4_5h_cvr", DoubleType, true),
-      StructField("b4_5h_conver", DoubleType, true),
-      StructField("b4_5h_ecpm", DoubleType, true),
-      StructField("b4_5h_click", DoubleType, true),
-      StructField("b4_5h_conver_x_log_view", DoubleType, true),
-      StructField("b4_5h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_6h_ctr", DoubleType, true),
-      StructField("b4_6h_ctcvr", DoubleType, true),
-      StructField("b4_6h_cvr", DoubleType, true),
-      StructField("b4_6h_conver", DoubleType, true),
-      StructField("b4_6h_ecpm", DoubleType, true),
-      StructField("b4_6h_click", DoubleType, true),
-      StructField("b4_6h_conver_x_log_view", DoubleType, true),
-      StructField("b4_6h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_12h_ctr", DoubleType, true),
-      StructField("b4_12h_ctcvr", DoubleType, true),
-      StructField("b4_12h_cvr", DoubleType, true),
-      StructField("b4_12h_conver", DoubleType, true),
-      StructField("b4_12h_ecpm", DoubleType, true),
-      StructField("b4_12h_click", DoubleType, true),
-      StructField("b4_12h_conver_x_log_view", DoubleType, true),
-      StructField("b4_12h_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_1d_ctr", DoubleType, true),
-      StructField("b4_1d_ctcvr", DoubleType, true),
-      StructField("b4_1d_cvr", DoubleType, true),
-      StructField("b4_1d_conver", DoubleType, true),
-      StructField("b4_1d_ecpm", DoubleType, true),
-      StructField("b4_1d_click", DoubleType, true),
-      StructField("b4_1d_conver_x_log_view", DoubleType, true),
-      StructField("b4_1d_conver_x_ctcvr", DoubleType, true),
-      StructField("b4_3d_ctr", DoubleType, true),
-      StructField("b2_6h_cvr", DoubleType, true),
-      StructField("b2_6h_conver", DoubleType, true),
-      StructField("b2_6h_ecpm", DoubleType, true),
-      StructField("b2_6h_click", DoubleType, true),
-      StructField("b2_6h_conver_x_log_view", DoubleType, true),
-      StructField("b2_6h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_12h_ctr", DoubleType, true),
-      StructField("b2_12h_ctcvr", DoubleType, true),
-      StructField("b2_12h_cvr", DoubleType, true),
-      StructField("b2_12h_conver", DoubleType, true),
-      StructField("b2_12h_ecpm", DoubleType, true),
-      StructField("b2_12h_click", DoubleType, true),
-      StructField("b2_12h_conver_x_log_view", DoubleType, true),
-      StructField("b2_12h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_1d_ctr", DoubleType, true),
-      StructField("b2_1d_ctcvr", DoubleType, true),
-      StructField("b2_1d_cvr", DoubleType, true),
-      StructField("b2_1d_conver", DoubleType, true),
-      StructField("b2_1d_ecpm", DoubleType, true),
-      StructField("b2_1d_click", DoubleType, true),
-      StructField("b2_1d_conver_x_log_view", DoubleType, true),
-      StructField("b2_1d_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_3d_ctr", DoubleType, true),
-      StructField("b2_3d_ctcvr", DoubleType, true),
-      StructField("b2_3d_cvr", DoubleType, true),
-      StructField("b2_3d_conver", DoubleType, true),
-      StructField("b2_3d_ecpm", DoubleType, true),
-      StructField("b2_3d_click", DoubleType, true),
-      StructField("b2_3d_conver_x_log_view", DoubleType, true),
-      StructField("b2_3d_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_7d_ctr", DoubleType, true),
-      StructField("b2_7d_ctcvr", DoubleType, true),
-      StructField("b2_7d_cvr", DoubleType, true),
-      StructField("b2_7d_conver", DoubleType, true),
-      StructField("b2_7d_ecpm", DoubleType, true),
-      StructField("b2_7d_click", DoubleType, true),
-      StructField("b2_7d_conver_x_log_view", DoubleType, true),
-      StructField("b2_7d_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_today_ctr", DoubleType, true),
-      StructField("b2_today_ctcvr", DoubleType, true),
-      StructField("b2_today_cvr", DoubleType, true),
-      StructField("b2_today_conver", DoubleType, true),
-      StructField("b2_today_ecpm", DoubleType, true),
-      StructField("cpa", DoubleType, true),
-      StructField("b2_1h_ctr", DoubleType, true),
-      StructField("b2_1h_ctcvr", DoubleType, true),
-      StructField("b2_1h_cvr", DoubleType, true),
-      StructField("b2_1h_conver", DoubleType, true),
-      StructField("b2_1h_ecpm", DoubleType, true),
-      StructField("b2_1h_click", DoubleType, true),
-      StructField("b2_1h_conver_x_log_view", DoubleType, true),
-      StructField("b2_1h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_2h_ctr", DoubleType, true),
-      StructField("b2_2h_ctcvr", DoubleType, true),
-      StructField("b2_2h_cvr", DoubleType, true),
-      StructField("b2_2h_conver", DoubleType, true),
-      StructField("b2_2h_ecpm", DoubleType, true),
-      StructField("b2_2h_click", DoubleType, true),
-      StructField("b2_2h_conver_x_log_view", DoubleType, true),
-      StructField("b2_2h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_3h_ctr", DoubleType, true),
-      StructField("b2_3h_ctcvr", DoubleType, true),
-      StructField("b2_3h_cvr", DoubleType, true),
-      StructField("b2_3h_conver", DoubleType, true),
-      StructField("b2_3h_ecpm", DoubleType, true),
-      StructField("b2_3h_click", DoubleType, true),
-      StructField("b2_3h_conver_x_log_view", DoubleType, true),
-      StructField("b2_3h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_4h_ctr", DoubleType, true),
-      StructField("b2_4h_ctcvr", DoubleType, true),
-      StructField("b2_4h_cvr", DoubleType, true),
-      StructField("b2_4h_conver", DoubleType, true),
-      StructField("b2_4h_ecpm", DoubleType, true),
-      StructField("b2_4h_click", DoubleType, true),
-      StructField("b2_4h_conver_x_log_view", DoubleType, true),
-      StructField("b2_4h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_5h_ctr", DoubleType, true),
-      StructField("b2_5h_ctcvr", DoubleType, true),
-      StructField("b2_5h_cvr", DoubleType, true),
-      StructField("b2_5h_conver", DoubleType, true),
-      StructField("b2_5h_ecpm", DoubleType, true),
-      StructField("b2_5h_click", DoubleType, true),
-      StructField("b2_5h_conver_x_log_view", DoubleType, true),
-      StructField("b2_5h_conver_x_ctcvr", DoubleType, true),
-      StructField("b2_6h_ctr", DoubleType, true),
-      StructField("b2_6h_ctcvr", DoubleType, true),
-      StructField("b9_5h_conver", DoubleType, true),
-      StructField("b9_5h_ecpm", DoubleType, true),
-      StructField("b9_5h_click", DoubleType, true),
-      StructField("b9_5h_conver_x_log_view", DoubleType, true),
-      StructField("b9_5h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_6h_ctr", DoubleType, true),
-      StructField("b9_6h_ctcvr", DoubleType, true),
-      StructField("b9_6h_cvr", DoubleType, true),
-      StructField("b9_6h_conver", DoubleType, true),
-      StructField("b9_6h_ecpm", DoubleType, true),
-      StructField("b9_6h_click", DoubleType, true),
-      StructField("b9_6h_conver_x_log_view", DoubleType, true),
-      StructField("b9_6h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_12h_ctr", DoubleType, true),
-      StructField("b9_12h_ctcvr", DoubleType, true),
-      StructField("b9_12h_cvr", DoubleType, true),
-      StructField("b9_12h_conver", DoubleType, true),
-      StructField("b9_12h_ecpm", DoubleType, true),
-      StructField("b9_12h_click", DoubleType, true),
-      StructField("b9_12h_conver_x_log_view", DoubleType, true),
-      StructField("b9_12h_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_1d_ctr", DoubleType, true),
-      StructField("b9_1d_ctcvr", DoubleType, true),
-      StructField("b9_1d_cvr", DoubleType, true),
-      StructField("b9_1d_conver", DoubleType, true),
-      StructField("b9_1d_ecpm", DoubleType, true),
-      StructField("b9_1d_click", DoubleType, true),
-      StructField("b9_1d_conver_x_log_view", DoubleType, true),
-      StructField("b9_1d_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_3d_ctr", DoubleType, true),
-      StructField("b9_3d_ctcvr", DoubleType, true),
-      StructField("b9_3d_cvr", DoubleType, true),
-      StructField("b9_3d_conver", DoubleType, true),
-      StructField("b9_3d_ecpm", DoubleType, true),
-      StructField("b9_3d_click", DoubleType, true),
-      StructField("b9_3d_conver_x_log_view", DoubleType, true),
-      StructField("b9_3d_conver_x_ctcvr", DoubleType, true),
-      StructField("b9_7d_ctr", DoubleType, true),
-      StructField("b9_7d_ctcvr", DoubleType, true),
-      StructField("b9_7d_cvr", DoubleType, true),
-      StructField("b9_7d_conver", DoubleType, true),
-      StructField("b9_7d_ecpm", DoubleType, true),
-      StructField("b9_7d_click", DoubleType, true),
-      StructField("weight", DoubleType, true),
-      StructField("dt", StringType, true)
-    ))
+        val schema = StructType(Seq(
+          StructField("has_click", LongType, nullable = true),
+          StructField("has_conversion", LongType, nullable = true),
+          StructField("b8_yesterday_ctr", DoubleType, nullable = true),
+          StructField("b8_yesterday_ctcvr", DoubleType, nullable = true),
+          StructField("b8_yesterday_cvr", DoubleType, nullable = true),
+          StructField("b8_yesterday_conver", DoubleType, nullable = true),
+          StructField("b8_yesterday_ecpm", DoubleType, nullable = true),
+          StructField("b8_yesterday_click", DoubleType, nullable = true),
+          StructField("b8_yesterday_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_yesterday_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b9_1h_ctr", DoubleType, nullable = true),
+          StructField("b9_1h_ctcvr", DoubleType, nullable = true),
+          StructField("b9_1h_cvr", DoubleType, nullable = true),
+          StructField("b9_1h_conver", DoubleType, nullable = true),
+          StructField("b9_1h_ecpm", DoubleType, nullable = true),
+          StructField("b9_1h_click", DoubleType, nullable = true),
+          StructField("b9_1h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b9_1h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b9_2h_ctr", DoubleType, nullable = true),
+          StructField("b9_2h_ctcvr", DoubleType, nullable = true),
+          StructField("b9_2h_cvr", DoubleType, nullable = true),
+          StructField("b9_2h_conver", DoubleType, nullable = true),
+          StructField("b9_2h_ecpm", DoubleType, nullable = true),
+          StructField("b9_2h_click", DoubleType, nullable = true),
+          StructField("b9_2h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b9_2h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b9_3h_ctr", DoubleType, nullable = true),
+          StructField("b9_3h_ctcvr", DoubleType, nullable = true),
+          StructField("b9_3h_cvr", DoubleType, nullable = true),
+          StructField("b9_3h_conver", DoubleType, nullable = true),
+          StructField("b9_3h_ecpm", DoubleType, nullable = true),
+          StructField("b9_3h_click", DoubleType, nullable = true),
+          StructField("b9_3h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b9_3h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b9_4h_ctr", DoubleType, nullable = true),
+          StructField("b9_4h_ctcvr", DoubleType, nullable = true),
+          StructField("b9_4h_cvr", DoubleType, nullable = true),
+          StructField("b9_4h_conver", DoubleType, nullable = true),
+          StructField("b9_4h_ecpm", DoubleType, nullable = true),
+          StructField("b9_4h_click", DoubleType, nullable = true),
+          StructField("b9_4h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b9_4h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b9_5h_ctr", DoubleType, nullable = true),
+          StructField("b9_5h_ctcvr", DoubleType, nullable = true),
+          StructField("b9_5h_cvr", DoubleType, nullable = true),
+          StructField("b7_14d_ctcvr", DoubleType, nullable = true),
+          StructField("b7_14d_cvr", DoubleType, nullable = true),
+          StructField("b7_14d_conver", DoubleType, nullable = true),
+          StructField("b7_14d_ecpm", DoubleType, nullable = true),
+          StructField("b7_14d_click", DoubleType, nullable = true),
+          StructField("b7_14d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b7_14d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("viewall", DoubleType, nullable = true),
+          StructField("clickall", DoubleType, nullable = true),
+          StructField("converall", DoubleType, nullable = true),
+          StructField("incomeall", DoubleType, nullable = true),
+          StructField("ctr_all", DoubleType, nullable = true),
+          StructField("ctcvr_all", DoubleType, nullable = true),
+          StructField("cvr_all", DoubleType, nullable = true),
+          StructField("ecpm_all", DoubleType, nullable = true),
+          StructField("timediff_view", DoubleType, nullable = true),
+          StructField("timediff_click", DoubleType, nullable = true),
+          StructField("timediff_conver", DoubleType, nullable = true),
+          StructField("actionstatic_view", DoubleType, nullable = true),
+          StructField("actionstatic_click", DoubleType, nullable = true),
+          StructField("actionstatic_conver", DoubleType, nullable = true),
+          StructField("actionstatic_income", DoubleType, nullable = true),
+          StructField("actionstatic_ctr", DoubleType, nullable = true),
+          StructField("actionstatic_ctcvr", DoubleType, nullable = true),
+          StructField("actionstatic_cvr", DoubleType, nullable = true),
+          StructField("e1_tags_3d_matchnum", DoubleType, nullable = true),
+          StructField("e1_tags_3d_maxscore", DoubleType, nullable = true),
+          StructField("e1_tags_3d_avgscore", DoubleType, nullable = true),
+          StructField("e1_tags_7d_matchnum", DoubleType, nullable = true),
+          StructField("e1_tags_7d_maxscore", DoubleType, nullable = true),
+          StructField("e1_tags_7d_avgscore", DoubleType, nullable = true),
+          StructField("e1_tags_14d_matchnum", DoubleType, nullable = true),
+          StructField("e1_tags_14d_maxscore", DoubleType, nullable = true),
+          StructField("e1_tags_14d_avgscore", DoubleType, nullable = true),
+          StructField("e2_tags_3d_matchnum", DoubleType, nullable = true),
+          StructField("e2_tags_3d_maxscore", DoubleType, nullable = true),
+          StructField("e2_tags_3d_avgscore", DoubleType, nullable = true),
+          StructField("e2_tags_7d_matchnum", DoubleType, nullable = true),
+          StructField("e2_tags_7d_maxscore", DoubleType, nullable = true),
+          StructField("e2_tags_7d_avgscore", DoubleType, nullable = true),
+          StructField("e2_tags_14d_matchnum", DoubleType, nullable = true),
+          StructField("e2_tags_14d_maxscore", DoubleType, nullable = true),
+          StructField("e2_tags_14d_avgscore", DoubleType, nullable = true),
+          StructField("b8_1h_cvr", DoubleType, nullable = true),
+          StructField("b8_1h_conver", DoubleType, nullable = true),
+          StructField("b8_1h_ecpm", DoubleType, nullable = true),
+          StructField("b8_1h_click", DoubleType, nullable = true),
+          StructField("b8_1h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_1h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b8_2h_ctr", DoubleType, nullable = true),
+          StructField("b8_2h_ctcvr", DoubleType, nullable = true),
+          StructField("b8_2h_cvr", DoubleType, nullable = true),
+          StructField("b8_2h_conver", DoubleType, nullable = true),
+          StructField("b8_2h_ecpm", DoubleType, nullable = true),
+          StructField("b8_2h_click", DoubleType, nullable = true),
+          StructField("b8_2h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_2h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b8_3h_ctr", DoubleType, nullable = true),
+          StructField("b8_3h_ctcvr", DoubleType, nullable = true),
+          StructField("b8_3h_cvr", DoubleType, nullable = true),
+          StructField("b8_3h_conver", DoubleType, nullable = true),
+          StructField("b8_3h_ecpm", DoubleType, nullable = true),
+          StructField("b8_3h_click", DoubleType, nullable = true),
+          StructField("b8_3h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_3h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b8_4h_ctr", DoubleType, nullable = true),
+          StructField("b8_4h_ctcvr", DoubleType, nullable = true),
+          StructField("b8_4h_cvr", DoubleType, nullable = true),
+          StructField("b8_4h_conver", DoubleType, nullable = true),
+          StructField("b8_4h_ecpm", DoubleType, nullable = true),
+          StructField("b8_4h_click", DoubleType, nullable = true),
+          StructField("b8_4h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_4h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b8_5h_ctr", DoubleType, nullable = true),
+          StructField("b8_5h_ctcvr", DoubleType, nullable = true),
+          StructField("b8_5h_cvr", DoubleType, nullable = true),
+          StructField("b8_5h_conver", DoubleType, nullable = true),
+          StructField("b8_5h_ecpm", DoubleType, nullable = true),
+          StructField("b8_5h_click", DoubleType, nullable = true),
+          StructField("b8_5h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_5h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b8_6h_ctr", DoubleType, nullable = true),
+          StructField("b8_6h_ctcvr", DoubleType, nullable = true),
+          StructField("b8_6h_cvr", DoubleType, nullable = true),
+          StructField("b8_6h_conver", DoubleType, nullable = true),
+          StructField("b8_6h_ecpm", DoubleType, nullable = true),
+          StructField("b4_3d_ctcvr", DoubleType, nullable = true),
+          StructField("b4_3d_cvr", DoubleType, nullable = true),
+          StructField("b4_3d_conver", DoubleType, nullable = true),
+          StructField("b4_3d_ecpm", DoubleType, nullable = true),
+          StructField("b4_3d_click", DoubleType, nullable = true),
+          StructField("b4_3d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b4_3d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b4_7d_ctr", DoubleType, nullable = true),
+          StructField("b4_7d_ctcvr", DoubleType, nullable = true),
+          StructField("b4_7d_cvr", DoubleType, nullable = true),
+          StructField("b4_7d_conver", DoubleType, nullable = true),
+          StructField("b4_7d_ecpm", DoubleType, nullable = true),
+          StructField("b4_7d_click", DoubleType, nullable = true),
+          StructField("b4_7d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b4_7d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b4_today_ctr", DoubleType, nullable = true),
+          StructField("b4_today_ctcvr", DoubleType, nullable = true),
+          StructField("b4_today_cvr", DoubleType, nullable = true),
+          StructField("b4_today_conver", DoubleType, nullable = true),
+          StructField("b4_today_ecpm", DoubleType, nullable = true),
+          StructField("b4_today_click", DoubleType, nullable = true),
+          StructField("b4_today_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b4_today_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b4_yesterday_ctr", DoubleType, nullable = true),
+          StructField("b4_yesterday_ctcvr", DoubleType, nullable = true),
+          StructField("b4_yesterday_cvr", DoubleType, nullable = true),
+          StructField("b4_yesterday_conver", DoubleType, nullable = true),
+          StructField("b4_yesterday_ecpm", DoubleType, nullable = true),
+          StructField("b4_yesterday_click", DoubleType, nullable = true),
+          StructField("b4_yesterday_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b4_yesterday_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b5_1h_ctr", DoubleType, nullable = true),
+          StructField("b5_1h_ctcvr", DoubleType, nullable = true),
+          StructField("b5_1h_cvr", DoubleType, nullable = true),
+          StructField("b5_1h_conver", DoubleType, nullable = true),
+          StructField("b5_1h_ecpm", DoubleType, nullable = true),
+          StructField("b5_1h_click", DoubleType, nullable = true),
+          StructField("b5_1h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b5_1h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b5_2h_ctr", DoubleType, nullable = true),
+          StructField("b5_2h_ctcvr", DoubleType, nullable = true),
+          StructField("b5_2h_cvr", DoubleType, nullable = true),
+          StructField("b5_2h_conver", DoubleType, nullable = true),
+          StructField("d1_feature_3h_ctr", DoubleType, nullable = true),
+          StructField("d1_feature_3h_ctcvr", DoubleType, nullable = true),
+          StructField("d1_feature_3h_cvr", DoubleType, nullable = true),
+          StructField("d1_feature_3h_conver", DoubleType, nullable = true),
+          StructField("d1_feature_3h_ecpm", DoubleType, nullable = true),
+          StructField("d1_feature_6h_ctr", DoubleType, nullable = true),
+          StructField("d1_feature_6h_ctcvr", DoubleType, nullable = true),
+          StructField("d1_feature_6h_cvr", DoubleType, nullable = true),
+          StructField("d1_feature_6h_conver", DoubleType, nullable = true),
+          StructField("d1_feature_6h_ecpm", DoubleType, nullable = true),
+          StructField("d1_feature_12h_ctr", DoubleType, nullable = true),
+          StructField("d1_feature_12h_ctcvr", DoubleType, nullable = true),
+          StructField("d1_feature_12h_cvr", DoubleType, nullable = true),
+          StructField("d1_feature_12h_conver", DoubleType, nullable = true),
+          StructField("d1_feature_12h_ecpm", DoubleType, nullable = true),
+          StructField("d1_feature_1d_ctr", DoubleType, nullable = true),
+          StructField("d1_feature_1d_ctcvr", DoubleType, nullable = true),
+          StructField("d1_feature_1d_cvr", DoubleType, nullable = true),
+          StructField("d1_feature_1d_conver", DoubleType, nullable = true),
+          StructField("d1_feature_1d_ecpm", DoubleType, nullable = true),
+          StructField("d1_feature_3d_ctr", DoubleType, nullable = true),
+          StructField("d1_feature_3d_ctcvr", DoubleType, nullable = true),
+          StructField("d1_feature_3d_cvr", DoubleType, nullable = true),
+          StructField("d1_feature_3d_conver", DoubleType, nullable = true),
+          StructField("d1_feature_3d_ecpm", DoubleType, nullable = true),
+          StructField("d1_feature_7d_ctr", DoubleType, nullable = true),
+          StructField("d1_feature_7d_ctcvr", DoubleType, nullable = true),
+          StructField("d1_feature_7d_cvr", DoubleType, nullable = true),
+          StructField("d1_feature_7d_conver", DoubleType, nullable = true),
+          StructField("d1_feature_7d_ecpm", DoubleType, nullable = true),
+          StructField("vid_rank_ctr_1d", DoubleType, nullable = true),
+          StructField("vid_rank_ctr_3d", DoubleType, nullable = true),
+          StructField("vid_rank_ctr_7d", DoubleType, nullable = true),
+          StructField("vid_rank_ctr_14d", DoubleType, nullable = true),
+          StructField("vid_rank_ctcvr_1d", DoubleType, nullable = true),
+          StructField("vid_rank_ctcvr_3d", DoubleType, nullable = true),
+          StructField("vid_rank_ctcvr_7d", DoubleType, nullable = true),
+          StructField("vid_rank_ctcvr_14d", DoubleType, nullable = true),
+          StructField("vid_rank_ecpm_1d", DoubleType, nullable = true),
+          StructField("vid_rank_ecpm_3d", DoubleType, nullable = true),
+          StructField("vid_rank_ecpm_7d", DoubleType, nullable = true),
+          StructField("vid_rank_ecpm_14d", DoubleType, nullable = true),
+          StructField("ctitle_vtitle_similarity", DoubleType, nullable = true),
+          StructField("b5_2h_ecpm", DoubleType, nullable = true),
+          StructField("b5_2h_click", DoubleType, nullable = true),
+          StructField("b5_2h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b5_2h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b5_3h_ctr", DoubleType, nullable = true),
+          StructField("b5_3h_ctcvr", DoubleType, nullable = true),
+          StructField("b5_3h_cvr", DoubleType, nullable = true),
+          StructField("b5_3h_conver", DoubleType, nullable = true),
+          StructField("b5_3h_ecpm", DoubleType, nullable = true),
+          StructField("b5_3h_click", DoubleType, nullable = true),
+          StructField("b5_3h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b5_3h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b5_4h_ctr", DoubleType, nullable = true),
+          StructField("b5_4h_ctcvr", DoubleType, nullable = true),
+          StructField("b5_4h_cvr", DoubleType, nullable = true),
+          StructField("b5_4h_conver", DoubleType, nullable = true),
+          StructField("b5_4h_ecpm", DoubleType, nullable = true),
+          StructField("b5_4h_click", DoubleType, nullable = true),
+          StructField("b5_4h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b5_4h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b5_5h_ctr", DoubleType, nullable = true),
+          StructField("b5_5h_ctcvr", DoubleType, nullable = true),
+          StructField("b5_5h_cvr", DoubleType, nullable = true),
+          StructField("b5_5h_conver", DoubleType, nullable = true),
+          StructField("b5_5h_ecpm", DoubleType, nullable = true),
+          StructField("b5_5h_click", DoubleType, nullable = true),
+          StructField("b5_5h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b5_5h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b5_6h_ctr", DoubleType, nullable = true),
+          StructField("b5_6h_ctcvr", DoubleType, nullable = true),
+          StructField("b5_6h_cvr", DoubleType, nullable = true),
+          StructField("b5_6h_conver", DoubleType, nullable = true),
+          StructField("b5_6h_ecpm", DoubleType, nullable = true),
+          StructField("b5_6h_click", DoubleType, nullable = true),
+          StructField("b5_6h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b5_6h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b5_12h_ctr", DoubleType, nullable = true),
+          StructField("b5_12h_ctcvr", DoubleType, nullable = true),
+          StructField("b5_12h_cvr", DoubleType, nullable = true),
+          StructField("b5_12h_conver", DoubleType, nullable = true),
+          StructField("b5_12h_ecpm", DoubleType, nullable = true),
+          StructField("b5_12h_click", DoubleType, nullable = true),
+          StructField("b5_12h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_6h_click", DoubleType, nullable = true),
+          StructField("b8_6h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_6h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b8_12h_ctr", DoubleType, nullable = true),
+          StructField("b8_12h_ctcvr", DoubleType, nullable = true),
+          StructField("b8_12h_cvr", DoubleType, nullable = true),
+          StructField("b8_12h_conver", DoubleType, nullable = true),
+          StructField("b8_12h_ecpm", DoubleType, nullable = true),
+          StructField("b8_12h_click", DoubleType, nullable = true),
+          StructField("b8_12h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_12h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b8_1d_ctr", DoubleType, nullable = true),
+          StructField("b8_1d_ctcvr", DoubleType, nullable = true),
+          StructField("b8_1d_cvr", DoubleType, nullable = true),
+          StructField("b8_1d_conver", DoubleType, nullable = true),
+          StructField("b8_1d_ecpm", DoubleType, nullable = true),
+          StructField("b8_1d_click", DoubleType, nullable = true),
+          StructField("b8_1d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_1d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b8_3d_ctr", DoubleType, nullable = true),
+          StructField("b8_3d_ctcvr", DoubleType, nullable = true),
+          StructField("b8_3d_cvr", DoubleType, nullable = true),
+          StructField("b8_3d_conver", DoubleType, nullable = true),
+          StructField("b8_3d_ecpm", DoubleType, nullable = true),
+          StructField("b8_3d_click", DoubleType, nullable = true),
+          StructField("b8_3d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_3d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b8_7d_ctr", DoubleType, nullable = true),
+          StructField("b8_7d_ctcvr", DoubleType, nullable = true),
+          StructField("b8_7d_cvr", DoubleType, nullable = true),
+          StructField("b8_7d_conver", DoubleType, nullable = true),
+          StructField("b8_7d_ecpm", DoubleType, nullable = true),
+          StructField("b8_7d_click", DoubleType, nullable = true),
+          StructField("b8_7d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_7d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b8_today_ctr", DoubleType, nullable = true),
+          StructField("b8_today_ctcvr", DoubleType, nullable = true),
+          StructField("b8_today_cvr", DoubleType, nullable = true),
+          StructField("b8_today_conver", DoubleType, nullable = true),
+          StructField("b8_today_ecpm", DoubleType, nullable = true),
+          StructField("b8_today_click", DoubleType, nullable = true),
+          StructField("b8_today_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b8_today_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b2_today_click", DoubleType, nullable = true),
+          StructField("b2_today_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b2_today_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b2_yesterday_ctr", DoubleType, nullable = true),
+          StructField("b2_yesterday_ctcvr", DoubleType, nullable = true),
+          StructField("b2_yesterday_cvr", DoubleType, nullable = true),
+          StructField("b2_yesterday_conver", DoubleType, nullable = true),
+          StructField("b2_yesterday_ecpm", DoubleType, nullable = true),
+          StructField("b2_yesterday_click", DoubleType, nullable = true),
+          StructField("b2_yesterday_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b2_yesterday_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b3_1h_ctr", DoubleType, nullable = true),
+          StructField("b3_1h_ctcvr", DoubleType, nullable = true),
+          StructField("b3_1h_cvr", DoubleType, nullable = true),
+          StructField("b3_1h_conver", DoubleType, nullable = true),
+          StructField("b3_1h_ecpm", DoubleType, nullable = true),
+          StructField("b3_1h_click", DoubleType, nullable = true),
+          StructField("b3_1h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b3_1h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b3_2h_ctr", DoubleType, nullable = true),
+          StructField("b3_2h_ctcvr", DoubleType, nullable = true),
+          StructField("b3_2h_cvr", DoubleType, nullable = true),
+          StructField("b3_2h_conver", DoubleType, nullable = true),
+          StructField("b3_2h_ecpm", DoubleType, nullable = true),
+          StructField("b3_2h_click", DoubleType, nullable = true),
+          StructField("b3_2h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b3_2h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b3_3h_ctr", DoubleType, nullable = true),
+          StructField("b3_3h_ctcvr", DoubleType, nullable = true),
+          StructField("b3_3h_cvr", DoubleType, nullable = true),
+          StructField("b3_3h_conver", DoubleType, nullable = true),
+          StructField("b3_3h_ecpm", DoubleType, nullable = true),
+          StructField("b3_3h_click", DoubleType, nullable = true),
+          StructField("b3_3h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b3_3h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b3_4h_ctr", DoubleType, nullable = true),
+          StructField("b3_4h_ctcvr", DoubleType, nullable = true),
+          StructField("b3_4h_cvr", DoubleType, nullable = true),
+          StructField("b3_4h_conver", DoubleType, nullable = true),
+          StructField("b3_4h_ecpm", DoubleType, nullable = true),
+          StructField("b3_4h_click", DoubleType, nullable = true),
+          StructField("b3_4h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b3_4h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b3_5h_ctr", DoubleType, nullable = true),
+          StructField("b3_5h_ctcvr", DoubleType, nullable = true),
+          StructField("b3_5h_cvr", DoubleType, nullable = true),
+          StructField("b3_5h_conver", DoubleType, nullable = true),
+          StructField("b3_5h_ecpm", DoubleType, nullable = true),
+          StructField("b3_5h_click", DoubleType, nullable = true),
+          StructField("b3_5h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b3_5h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b3_6h_ctr", DoubleType, nullable = true),
+          StructField("b3_6h_ctcvr", DoubleType, nullable = true),
+          StructField("b3_6h_cvr", DoubleType, nullable = true),
+          StructField("b3_6h_conver", DoubleType, nullable = true),
+          StructField("b3_6h_ecpm", DoubleType, nullable = true),
+          StructField("b3_6h_click", DoubleType, nullable = true),
+          StructField("b3_6h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b3_6h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b3_12h_ctr", DoubleType, nullable = true),
+          StructField("b3_12h_ctcvr", DoubleType, nullable = true),
+          StructField("b3_12h_cvr", DoubleType, nullable = true),
+          StructField("b3_12h_conver", DoubleType, nullable = true),
+          StructField("b3_12h_ecpm", DoubleType, nullable = true),
+          StructField("b3_12h_click", DoubleType, nullable = true),
+          StructField("b3_12h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b3_12h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b3_1d_ctr", DoubleType, nullable = true),
+          StructField("b3_1d_ctcvr", DoubleType, nullable = true),
+          StructField("b3_1d_cvr", DoubleType, nullable = true),
+          StructField("b3_1d_conver", DoubleType, nullable = true),
+          StructField("b3_1d_ecpm", DoubleType, nullable = true),
+          StructField("b3_1d_click", DoubleType, nullable = true),
+          StructField("b3_1d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b3_1d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b3_3d_ctr", DoubleType, nullable = true),
+          StructField("b3_3d_ctcvr", DoubleType, nullable = true),
+          StructField("b3_3d_cvr", DoubleType, nullable = true),
+          StructField("b3_3d_conver", DoubleType, nullable = true),
+          StructField("b3_3d_ecpm", DoubleType, nullable = true),
+          StructField("b3_3d_click", DoubleType, nullable = true),
+          StructField("b3_3d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b3_3d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b3_7d_ctr", DoubleType, nullable = true),
+          StructField("b3_7d_ctcvr", DoubleType, nullable = true),
+          StructField("b3_7d_cvr", DoubleType, nullable = true),
+          StructField("b3_7d_conver", DoubleType, nullable = true),
+          StructField("b3_7d_ecpm", DoubleType, nullable = true),
+          StructField("b3_7d_click", DoubleType, nullable = true),
+          StructField("b3_7d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b3_7d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b3_today_ctr", DoubleType, nullable = true),
+          StructField("b3_today_ctcvr", DoubleType, nullable = true),
+          StructField("b3_today_cvr", DoubleType, nullable = true),
+          StructField("b3_today_conver", DoubleType, nullable = true),
+          StructField("b3_today_ecpm", DoubleType, nullable = true),
+          StructField("b3_today_click", DoubleType, nullable = true),
+          StructField("b3_today_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b3_today_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b3_yesterday_ctr", DoubleType, nullable = true),
+          StructField("b3_yesterday_ctcvr", DoubleType, nullable = true),
+          StructField("b3_yesterday_cvr", DoubleType, nullable = true),
+          StructField("b3_yesterday_conver", DoubleType, nullable = true),
+          StructField("b3_yesterday_ecpm", DoubleType, nullable = true),
+          StructField("b3_yesterday_click", DoubleType, nullable = true),
+          StructField("b3_yesterday_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b3_yesterday_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b4_1h_ctr", DoubleType, nullable = true),
+          StructField("b4_1h_ctcvr", DoubleType, nullable = true),
+          StructField("b4_1h_cvr", DoubleType, nullable = true),
+          StructField("b4_1h_conver", DoubleType, nullable = true),
+          StructField("b4_1h_ecpm", DoubleType, nullable = true),
+          StructField("b4_1h_click", DoubleType, nullable = true),
+          StructField("b4_1h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b4_1h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b4_2h_ctr", DoubleType, nullable = true),
+          StructField("b4_2h_ctcvr", DoubleType, nullable = true),
+          StructField("b4_2h_cvr", DoubleType, nullable = true),
+          StructField("b4_2h_conver", DoubleType, nullable = true),
+          StructField("b4_2h_ecpm", DoubleType, nullable = true),
+          StructField("b4_2h_click", DoubleType, nullable = true),
+          StructField("b4_2h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b4_2h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b4_3h_ctr", DoubleType, nullable = true),
+          StructField("b4_3h_ctcvr", DoubleType, nullable = true),
+          StructField("b4_3h_cvr", DoubleType, nullable = true),
+          StructField("b4_3h_conver", DoubleType, nullable = true),
+          StructField("b4_3h_ecpm", DoubleType, nullable = true),
+          StructField("b4_3h_click", DoubleType, nullable = true),
+          StructField("b9_7d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b9_7d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b9_today_ctr", DoubleType, nullable = true),
+          StructField("b9_today_ctcvr", DoubleType, nullable = true),
+          StructField("b9_today_cvr", DoubleType, nullable = true),
+          StructField("b9_today_conver", DoubleType, nullable = true),
+          StructField("b9_today_ecpm", DoubleType, nullable = true),
+          StructField("b9_today_click", DoubleType, nullable = true),
+          StructField("b9_today_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b9_today_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b9_yesterday_ctr", DoubleType, nullable = true),
+          StructField("b9_yesterday_ctcvr", DoubleType, nullable = true),
+          StructField("b9_yesterday_cvr", DoubleType, nullable = true),
+          StructField("b9_yesterday_conver", DoubleType, nullable = true),
+          StructField("b9_yesterday_ecpm", DoubleType, nullable = true),
+          StructField("b9_yesterday_click", DoubleType, nullable = true),
+          StructField("b9_yesterday_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b9_yesterday_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b6_7d_ctr", DoubleType, nullable = true),
+          StructField("b6_7d_ctcvr", DoubleType, nullable = true),
+          StructField("b6_7d_cvr", DoubleType, nullable = true),
+          StructField("b6_7d_conver", DoubleType, nullable = true),
+          StructField("b6_7d_ecpm", DoubleType, nullable = true),
+          StructField("b6_7d_click", DoubleType, nullable = true),
+          StructField("b6_7d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b6_7d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b6_14d_ctr", DoubleType, nullable = true),
+          StructField("b6_14d_ctcvr", DoubleType, nullable = true),
+          StructField("b6_14d_cvr", DoubleType, nullable = true),
+          StructField("b6_14d_conver", DoubleType, nullable = true),
+          StructField("b6_14d_ecpm", DoubleType, nullable = true),
+          StructField("b6_14d_click", DoubleType, nullable = true),
+          StructField("b6_14d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b6_14d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b7_7d_ctr", DoubleType, nullable = true),
+          StructField("b7_7d_ctcvr", DoubleType, nullable = true),
+          StructField("b7_7d_cvr", DoubleType, nullable = true),
+          StructField("b7_7d_conver", DoubleType, nullable = true),
+          StructField("b7_7d_ecpm", DoubleType, nullable = true),
+          StructField("b7_7d_click", DoubleType, nullable = true),
+          StructField("b7_7d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b7_7d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b7_14d_ctr", DoubleType, nullable = true),
+          StructField("b5_12h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b5_1d_ctr", DoubleType, nullable = true),
+          StructField("b5_1d_ctcvr", DoubleType, nullable = true),
+          StructField("b5_1d_cvr", DoubleType, nullable = true),
+          StructField("b5_1d_conver", DoubleType, nullable = true),
+          StructField("b5_1d_ecpm", DoubleType, nullable = true),
+          StructField("b5_1d_click", DoubleType, nullable = true),
+          StructField("b5_1d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b5_1d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b5_3d_ctr", DoubleType, nullable = true),
+          StructField("b5_3d_ctcvr", DoubleType, nullable = true),
+          StructField("b5_3d_cvr", DoubleType, nullable = true),
+          StructField("b5_3d_conver", DoubleType, nullable = true),
+          StructField("b5_3d_ecpm", DoubleType, nullable = true),
+          StructField("b5_3d_click", DoubleType, nullable = true),
+          StructField("b5_3d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b5_3d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b5_7d_ctr", DoubleType, nullable = true),
+          StructField("b5_7d_ctcvr", DoubleType, nullable = true),
+          StructField("b5_7d_cvr", DoubleType, nullable = true),
+          StructField("b5_7d_conver", DoubleType, nullable = true),
+          StructField("b5_7d_ecpm", DoubleType, nullable = true),
+          StructField("b5_7d_click", DoubleType, nullable = true),
+          StructField("b5_7d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b5_7d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b5_today_ctr", DoubleType, nullable = true),
+          StructField("b5_today_ctcvr", DoubleType, nullable = true),
+          StructField("b5_today_cvr", DoubleType, nullable = true),
+          StructField("b5_today_conver", DoubleType, nullable = true),
+          StructField("b5_today_ecpm", DoubleType, nullable = true),
+          StructField("b5_today_click", DoubleType, nullable = true),
+          StructField("b5_today_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b5_today_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b5_yesterday_ctr", DoubleType, nullable = true),
+          StructField("b5_yesterday_ctcvr", DoubleType, nullable = true),
+          StructField("b5_yesterday_cvr", DoubleType, nullable = true),
+          StructField("b5_yesterday_conver", DoubleType, nullable = true),
+          StructField("b5_yesterday_ecpm", DoubleType, nullable = true),
+          StructField("b5_yesterday_click", DoubleType, nullable = true),
+          StructField("b5_yesterday_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b5_yesterday_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b8_1h_ctr", DoubleType, nullable = true),
+          StructField("b8_1h_ctcvr", DoubleType, nullable = true),
+          StructField("b4_3h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b4_3h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b4_4h_ctr", DoubleType, nullable = true),
+          StructField("b4_4h_ctcvr", DoubleType, nullable = true),
+          StructField("b4_4h_cvr", DoubleType, nullable = true),
+          StructField("b4_4h_conver", DoubleType, nullable = true),
+          StructField("b4_4h_ecpm", DoubleType, nullable = true),
+          StructField("b4_4h_click", DoubleType, nullable = true),
+          StructField("b4_4h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b4_4h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b4_5h_ctr", DoubleType, nullable = true),
+          StructField("b4_5h_ctcvr", DoubleType, nullable = true),
+          StructField("b4_5h_cvr", DoubleType, nullable = true),
+          StructField("b4_5h_conver", DoubleType, nullable = true),
+          StructField("b4_5h_ecpm", DoubleType, nullable = true),
+          StructField("b4_5h_click", DoubleType, nullable = true),
+          StructField("b4_5h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b4_5h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b4_6h_ctr", DoubleType, nullable = true),
+          StructField("b4_6h_ctcvr", DoubleType, nullable = true),
+          StructField("b4_6h_cvr", DoubleType, nullable = true),
+          StructField("b4_6h_conver", DoubleType, nullable = true),
+          StructField("b4_6h_ecpm", DoubleType, nullable = true),
+          StructField("b4_6h_click", DoubleType, nullable = true),
+          StructField("b4_6h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b4_6h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b4_12h_ctr", DoubleType, nullable = true),
+          StructField("b4_12h_ctcvr", DoubleType, nullable = true),
+          StructField("b4_12h_cvr", DoubleType, nullable = true),
+          StructField("b4_12h_conver", DoubleType, nullable = true),
+          StructField("b4_12h_ecpm", DoubleType, nullable = true),
+          StructField("b4_12h_click", DoubleType, nullable = true),
+          StructField("b4_12h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b4_12h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b4_1d_ctr", DoubleType, nullable = true),
+          StructField("b4_1d_ctcvr", DoubleType, nullable = true),
+          StructField("b4_1d_cvr", DoubleType, nullable = true),
+          StructField("b4_1d_conver", DoubleType, nullable = true),
+          StructField("b4_1d_ecpm", DoubleType, nullable = true),
+          StructField("b4_1d_click", DoubleType, nullable = true),
+          StructField("b4_1d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b4_1d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b4_3d_ctr", DoubleType, nullable = true),
+          StructField("b2_6h_cvr", DoubleType, nullable = true),
+          StructField("b2_6h_conver", DoubleType, nullable = true),
+          StructField("b2_6h_ecpm", DoubleType, nullable = true),
+          StructField("b2_6h_click", DoubleType, nullable = true),
+          StructField("b2_6h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b2_6h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b2_12h_ctr", DoubleType, nullable = true),
+          StructField("b2_12h_ctcvr", DoubleType, nullable = true),
+          StructField("b2_12h_cvr", DoubleType, nullable = true),
+          StructField("b2_12h_conver", DoubleType, nullable = true),
+          StructField("b2_12h_ecpm", DoubleType, nullable = true),
+          StructField("b2_12h_click", DoubleType, nullable = true),
+          StructField("b2_12h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b2_12h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b2_1d_ctr", DoubleType, nullable = true),
+          StructField("b2_1d_ctcvr", DoubleType, nullable = true),
+          StructField("b2_1d_cvr", DoubleType, nullable = true),
+          StructField("b2_1d_conver", DoubleType, nullable = true),
+          StructField("b2_1d_ecpm", DoubleType, nullable = true),
+          StructField("b2_1d_click", DoubleType, nullable = true),
+          StructField("b2_1d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b2_1d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b2_3d_ctr", DoubleType, nullable = true),
+          StructField("b2_3d_ctcvr", DoubleType, nullable = true),
+          StructField("b2_3d_cvr", DoubleType, nullable = true),
+          StructField("b2_3d_conver", DoubleType, nullable = true),
+          StructField("b2_3d_ecpm", DoubleType, nullable = true),
+          StructField("b2_3d_click", DoubleType, nullable = true),
+          StructField("b2_3d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b2_3d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b2_7d_ctr", DoubleType, nullable = true),
+          StructField("b2_7d_ctcvr", DoubleType, nullable = true),
+          StructField("b2_7d_cvr", DoubleType, nullable = true),
+          StructField("b2_7d_conver", DoubleType, nullable = true),
+          StructField("b2_7d_ecpm", DoubleType, nullable = true),
+          StructField("b2_7d_click", DoubleType, nullable = true),
+          StructField("b2_7d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b2_7d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b2_today_ctr", DoubleType, nullable = true),
+          StructField("b2_today_ctcvr", DoubleType, nullable = true),
+          StructField("b2_today_cvr", DoubleType, nullable = true),
+          StructField("b2_today_conver", DoubleType, nullable = true),
+          StructField("b2_today_ecpm", DoubleType, nullable = true),
+          StructField("cpa", DoubleType, nullable = true),
+          StructField("b2_1h_ctr", DoubleType, nullable = true),
+          StructField("b2_1h_ctcvr", DoubleType, nullable = true),
+          StructField("b2_1h_cvr", DoubleType, nullable = true),
+          StructField("b2_1h_conver", DoubleType, nullable = true),
+          StructField("b2_1h_ecpm", DoubleType, nullable = true),
+          StructField("b2_1h_click", DoubleType, nullable = true),
+          StructField("b2_1h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b2_1h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b2_2h_ctr", DoubleType, nullable = true),
+          StructField("b2_2h_ctcvr", DoubleType, nullable = true),
+          StructField("b2_2h_cvr", DoubleType, nullable = true),
+          StructField("b2_2h_conver", DoubleType, nullable = true),
+          StructField("b2_2h_ecpm", DoubleType, nullable = true),
+          StructField("b2_2h_click", DoubleType, nullable = true),
+          StructField("b2_2h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b2_2h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b2_3h_ctr", DoubleType, nullable = true),
+          StructField("b2_3h_ctcvr", DoubleType, nullable = true),
+          StructField("b2_3h_cvr", DoubleType, nullable = true),
+          StructField("b2_3h_conver", DoubleType, nullable = true),
+          StructField("b2_3h_ecpm", DoubleType, nullable = true),
+          StructField("b2_3h_click", DoubleType, nullable = true),
+          StructField("b2_3h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b2_3h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b2_4h_ctr", DoubleType, nullable = true),
+          StructField("b2_4h_ctcvr", DoubleType, nullable = true),
+          StructField("b2_4h_cvr", DoubleType, nullable = true),
+          StructField("b2_4h_conver", DoubleType, nullable = true),
+          StructField("b2_4h_ecpm", DoubleType, nullable = true),
+          StructField("b2_4h_click", DoubleType, nullable = true),
+          StructField("b2_4h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b2_4h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b2_5h_ctr", DoubleType, nullable = true),
+          StructField("b2_5h_ctcvr", DoubleType, nullable = true),
+          StructField("b2_5h_cvr", DoubleType, nullable = true),
+          StructField("b2_5h_conver", DoubleType, nullable = true),
+          StructField("b2_5h_ecpm", DoubleType, nullable = true),
+          StructField("b2_5h_click", DoubleType, nullable = true),
+          StructField("b2_5h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b2_5h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b2_6h_ctr", DoubleType, nullable = true),
+          StructField("b2_6h_ctcvr", DoubleType, nullable = true),
+          StructField("b9_5h_conver", DoubleType, nullable = true),
+          StructField("b9_5h_ecpm", DoubleType, nullable = true),
+          StructField("b9_5h_click", DoubleType, nullable = true),
+          StructField("b9_5h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b9_5h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b9_6h_ctr", DoubleType, nullable = true),
+          StructField("b9_6h_ctcvr", DoubleType, nullable = true),
+          StructField("b9_6h_cvr", DoubleType, nullable = true),
+          StructField("b9_6h_conver", DoubleType, nullable = true),
+          StructField("b9_6h_ecpm", DoubleType, nullable = true),
+          StructField("b9_6h_click", DoubleType, nullable = true),
+          StructField("b9_6h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b9_6h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b9_12h_ctr", DoubleType, nullable = true),
+          StructField("b9_12h_ctcvr", DoubleType, nullable = true),
+          StructField("b9_12h_cvr", DoubleType, nullable = true),
+          StructField("b9_12h_conver", DoubleType, nullable = true),
+          StructField("b9_12h_ecpm", DoubleType, nullable = true),
+          StructField("b9_12h_click", DoubleType, nullable = true),
+          StructField("b9_12h_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b9_12h_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b9_1d_ctr", DoubleType, nullable = true),
+          StructField("b9_1d_ctcvr", DoubleType, nullable = true),
+          StructField("b9_1d_cvr", DoubleType, nullable = true),
+          StructField("b9_1d_conver", DoubleType, nullable = true),
+          StructField("b9_1d_ecpm", DoubleType, nullable = true),
+          StructField("b9_1d_click", DoubleType, nullable = true),
+          StructField("b9_1d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b9_1d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b9_3d_ctr", DoubleType, nullable = true),
+          StructField("b9_3d_ctcvr", DoubleType, nullable = true),
+          StructField("b9_3d_cvr", DoubleType, nullable = true),
+          StructField("b9_3d_conver", DoubleType, nullable = true),
+          StructField("b9_3d_ecpm", DoubleType, nullable = true),
+          StructField("b9_3d_click", DoubleType, nullable = true),
+          StructField("b9_3d_conver_x_log_view", DoubleType, nullable = true),
+          StructField("b9_3d_conver_x_ctcvr", DoubleType, nullable = true),
+          StructField("b9_7d_ctr", DoubleType, nullable = true),
+          StructField("b9_7d_ctcvr", DoubleType, nullable = true),
+          StructField("b9_7d_cvr", DoubleType, nullable = true),
+          StructField("b9_7d_conver", DoubleType, nullable = true),
+          StructField("b9_7d_ecpm", DoubleType, nullable = true),
+          StructField("b9_7d_click", DoubleType, nullable = true),
+          StructField("weight", DoubleType, nullable = true),
+          StructField("dt", StringType, nullable = true)
+        ))
 
 
-    // 创建 DataFrame
-    val df = spark.createDataFrame(spark.sparkContext.parallelize(rows), schema)
-    df.write.mode("append").saveAsTable(table)
+        // 创建 DataFrame
+        val df = spark.createDataFrame(spark.sparkContext.parallelize(rows), schema)
+        df.write.mode("append").saveAsTable(table)
   }