[英]Generate random object in Scala
我是scala的初學者,我嘗試在Scala制作活動水果銷售並將結果存儲在json文件中。 為此,我嘗試生成隨機 object(具有名稱和來源的水果),但我遇到了困難,我不知道如何使用隨機 class 來生成它。
這是我的代碼:
import scala.util.Random
import org.apache.spark.sql.SparkSession
val spark = SparkSession
.builder
.appName("FruitSales")
.getOrCreate()
object FruitSales extends Enumeration {
object Fruit extends Enumeration {
type Fruit= Value
val apple, banana , orange, strawberry = Value
}
object Origin extends Enumeration {
type Origin = Value
val USA, espagne, france, sweden, mexico= Value
}
class Fruits(Fruit: String, Origin: String) extends Enumeration {}
def producing_events (fruit: Fruits): Fruits = {
val rand = new scala.util.Random
rand.nextString(200)
}
val df = spark.read.json("/tmp/file.json")
df.show(false)
}
我建議在這種情況下避免使用枚舉,這不是最佳做法。 這是我的方法,並不完美,但會為您提供一個總體思路。 下面的代碼生成 10 個隨機對象,如果你真的想要,你甚至可以在 ScalaCheck 中自定義概率分布,但我想這對你的情況來說太多了。
import org.scalacheck._
final case class Fruit(name: String, origin: String)
val originGen = Gen.oneOf( List("apple", "banana", "orange", "strawberry") )
val fruitNameGen = Gen.oneOf( List("USA", "Espagne", "France", "Sweden", "Mexico") )
val fruits = {
for {
_ <- 0 to 10
origin <- originGen.sample.take(1)
fruit <- fruitNameGen.sample.take(1)
} yield Fruit(fruit, origin)
}
println( fruits )
也可以在object代上添加一些限制和依賴。 只需挖掘文檔以獲取更多詳細信息。
https://github.com/typelevel/scalacheck/blob/master/doc/UserGuide.md
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.