spark sql 更改返回的datafram指定字段数据为随机字典值?

val A = Array("已绑定", "未绑定")

  val random = new Random
  val result = A(random.nextInt(A.length))

val frame1 = frame.withColumn("dim4", when(col("dim4").isNull, A(random.nextInt(A.length))).otherwise(0))

dim4字段的值替换为数组里面的随机值,上面的写法不能进行随机,都是固定的一个值
求 怎么变成随机的值呢?

阅读 1.5k
1 个回答
✓ 已被采纳

org.apache.spark.sql.functions.rand 做随机,比如:

import org.apache.spark.sql.functions.{rand, when}

df.withColumn("xx", when(rand() > 0.5, "1").otherwise("0"))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进