数据处理生产环境_Spark根据给定的轨迹编号生成随机16进制颜色

需求

根据给定的轨迹编号在这一列后面生成随机颜色_16

代码

Scala 复制代码
package test

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
import scala.util.hashing.MurmurHash3

object randomV2 {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder()
      .appName("ColorGeneration")
      .master("local[*]")
      .getOrCreate()

    import spark.implicits._

    // 创建DataFrame使用提供的数据,这里是测试数据,
    //生产环境中我们一般是读取的上一个节点传来的dataframe,直接调下面的方法,自定义函数即可,
    //完全可以实现我们想要的功能,可根据我们的具体虚修再做修改
    //val df = spark.read.csv("xxx.csv", header = true, inferSchema = true),

    val data = Seq(
      ("吃饭", "睡觉"),
      ("吃饭", "宋江"),
      ("郭靖", "宋江"),
      ("杨过", "奥特曼")
    )
    val df1 = data.toDF("a1", "a2")
    

    // 定义基于种子的随机颜色生成函数
    def getRandomColorFromSeed(seed: String): String = {
      val hashed = MurmurHash3.stringHash(seed) // 使用MurmurHash3生成种子的哈希值
      val r = (hashed & 0xFF0000) >> 16
      val g = (hashed & 0x00FF00) >> 8
      val b = hashed & 0x0000FF
      f"#$r%02x$g%02x$b%02x"
    }

    val getRandomColorWithSeedUDF = udf((seed: String) => getRandomColorFromSeed(seed))

    val dfWithColor = df1.withColumn("c1", getRandomColorWithSeedUDF($"a1"))

    dfWithColor.show() // 显示包含使用相同随机种子生成的新 "c1" 列的 DataFrame
  }
}
相关推荐
腾讯云大数据10 小时前
腾讯云大数据计算智能:从结构化 SQL 到多模态 AI Workload 的融合范式
大数据·人工智能·腾讯云
AI职业加油站10 小时前
大数据采集工程师:技术栈全景图与实战路径
大数据·人工智能·数据分析
老白讲技术12 小时前
2026年国内APP开发与软件定制服务商能力观察:从AI应用到行业系统开发
大数据·人工智能·ai·app·软件需求·app开发
荣-12 小时前
从两天到十几分钟:一套 YT Crash 自动化分析工具完整工程复盘
大数据·运维·自动化
人工智能培训14 小时前
大模型驱动下传统大数据架构的变革方向
大数据·人工智能·重构·架构·agent·agi
蜡笔削薪15 小时前
财联万业(杭州)数字科技有限公司能否给代理划定独家经营区域?
大数据·人工智能·python·科技
笨鸟先飞的橘猫15 小时前
skynet——分布式支持
分布式·skynet
动恰客流统计15 小时前
零食集合店爆火背后:客流统计技术如何重构新零售运营决策
大数据·人工智能
B8017913Y17 小时前
2026撰写行业报告总写不完零散专业词汇?可系统梳理行业专业词汇
大数据·人工智能
2601_9623413018 小时前
计算机毕业设计之jsp考研在线复习平台
java·大数据·开发语言·hadoop·python·考研·课程设计