scala import scala.collection.parallel.CollectionConverters._ val salesData = Seq( ("2021-01-01", 100.0), ("2021-01-02", 200.0), ("2021-12-30", 150.0), ("2021-12-31", 250.0) ) val monthlySales = salesData.par .groupBy { case (date, _) => date.split("-")(1) } .mapValues(_.map(_._2).sum) monthlySales.foreach { case (month, sales) => println(s"Month: $month, Total Sales: $sales") } scala import scala.collection.parallel.CollectionConverters._ val graph = Map( "A" -> Seq("B", "C"), "B" -> Seq("C"), "C" -> Seq("A") ) val initialRank = Map("A" -> 1.0, "B" -> 1.0, "C" -> 1.0) val dampingFactor = 0.85 val iterations = 10 def calculatePageRank(rank: Map[String, Double]): Map[String, Double] = { val numPages = rank.size val newRanks = graph.par.flatMap { case (page, links) => val outboundLinks = links.size links.map(dest => dest -> (rank.getOrElse(dest, 0.0) / outboundLinks)) } newRanks.groupBy(_._1).mapValues { case ranks => (1 - dampingFactor) / numPages + dampingFactor * ranks.map(_._2).sum } } var currentRank = initialRank for (i <- 1 to iterations) { currentRank = calculatePageRank(currentRank) } currentRank.foreach { case (page, rank) => println(s"Page: $page, Rank: $rank") }


上一篇:
下一篇:
切换中文