import scala.concurrent.duration.Duration
import scala.concurrent.duration.Duration._
import scala.concurrent.{Await, Future}
import scala.concurrent.Future._
import scala.concurrent.ExecutionContext.Implicits.global
object TestClass {
final case class Record(id: String)
final case class Reco
我需要在将来添加到Map结构中,我无法找到一种使Map不可变的方法(见下文)。我担心如果Map是可变的,那么我将有一个竞赛条件。如何修复下面的代码?
object TestFutures extends App {
val m = collection.mutable.Map[Int,String]()
val f0 = Future { 0 }
val f1 = Future { 1 }
val f2 = Future { 2 }
val f3 = Future { 3 }
val f4 = Future { 4 }
val fx = Seq(f0,f1,f
如果没有未来,这就是我如何将所有较小的Seq与平台映射合并为一个大的Seq。
category.getCategoryUrlKey(id: Int):Seq[Meta] // main method
val appDomains: Seq[Int]
val categories:Seq[Meta] = appDomains.flatMap(category.getCategoryUrlKey(_))
现在,getCategoryUrlKey方法可能会失败。我在前面放置了一个断路器,以避免将其称为maxFailures之后的下一个元件。现在断路器不是返回Seq,而是返回Future[Seq]
我有下面的简单代码
private def tt(l:Seq[Int]):Seq[Future[Unit]] = {
val aa = l.map(_=>Future.successful(()))
aa
}
我可以很容易地理解这样一个事实:我正在返回Future[Unit] type corresponding to each element of my sequence "l" that is passed to method tt. --因此很容易说"aa"是Seq[Future[Unit]]类型的。我无法理解的是,当我的"
我正在尝试使用以下代码将Future[Seq(String,String)]转换为Future[Seq(String)]:
sortedSeq.map(_._2)
因此sortedSeq的类型为[Seq(String,String)]
但我一直收到错误:
value _2 is not a member of Seq[(String, String)]
我做错了什么?
假设我有一个接收消息的工作者,做一些处理并返回一个结果。我有一系列的信息需要转换成一系列的结果:
object Test {
case class Message(str: String)
case class Result(str: String)
class Worker extends Actor {
def receive = {
case Message(data) =>
println("Sleeping: " + data)
Thread.sleep(10000)
玩F#,尝试从stringabcdefghijklmnop获取另一个string aeimbfjncgkodhlp。 let input ="abcdefghijklmnop"
let convertList (input:string)=
input
|> Seq.mapi(fun i ei-> i % 4, ei)
|> Seq.groupBy (fst)
|> Seq.map(fun (g,s)-> s |> Seq.map snd)
let result = convertList input
我在play框架上使用了未来的scala。但是我很难在合并多个期货时超时的情况下获得最终结果的一部分。下面是我的代码的功能。它有两个分别查询两个提供者的未来。然后使用for/yield语句合并结果。然后等待具有超时值的结果。当两个提供者及时回复查询时,它工作得很好。然而,如果只有一个提供者按时回复,我知道等待会超时,但在这种情况下,我仍然需要检索从另一个按时回复的提供者返回的数据。我该怎么做?
val pool = Executors.newCachedThreadPool()
implicit val ec = ExecutionContext.fromExecutorService(poo
在之后,我计算了一些文档的TF-国防军权重。现在,我想使用RowMatrix来计算文档的相似性。但我很难把数据转换成正确的格式。我现在拥有的是一个DataFrame,它的行将(String,SparseVector)作为两列的类型。我应该把它转换成RDD[Vector],我认为这很容易,就像:
features.map(row => row.getAs[SparseVector](1)).rdd()
但我知道这个错误:
<console>:58: error: Unable to find encoder for type stored in a
Dataset. Prim
假设我已经收到了一份期货清单,其中每一份都与一个键相连,例如:
val seq: Seq[(Key, Future[Value])]
我的目标是在所有期货完成后,生成一个关键价值元组的列表:
val complete: Seq[(Key, Value)]
我想知道这是否可以通过序列调用来实现。例如,我知道我可以做以下工作:
val complete = Future.sequence(seq.map(_._2).onComplete {
case Success(s) => s
case Failure(NonFatal(e)) => Seq()
}
但是这只会返回一个值对