我正在使用scala.util.random.shuffle(phonenumber.tolist)获取我所有电话号码的随机号码,但是我的电话号码列表中有重复的电话号码,我想为所有重复的电话号码分配相同的随机号码。我已经在使用denserank()来整理那些重复的值。
abithluo1#
你在找这个吗-
val getRandom = udf((seed: Long) => new Random(seed).shuffle(seed.toString.toCharArray.iterator).mkString("").toLong) Seq(123456, 234567, 345678, 123456, 456789, 123456, 123456, 123456).toDF("phone_number") .withColumn("rand_number", getRandom($"phone_number")) .show(false) /** * +------------+-----------+ * |phone_number|rand_number| * +------------+-----------+ * |123456 |512634 | * |234567 |372456 | * |345678 |847635 | * |123456 |512634 | * |456789 |789546 | * |123456 |512634 | * |123456 |512634 | * |123456 |512634 | * +------------+-----------+ */
请注意重复电话号码的洗牌 123456 总是一样的。这可以看作是 shuffle Spark函数
123456
shuffle
1条答案
按热度按时间abithluo1#
你在找这个吗-
请注意重复电话号码的洗牌
123456
总是一样的。这可以看作是shuffle
Spark函数