小编Mul*_*efa的帖子

akka:如何测试一个演员被停止了

我想知道测试演员是否已经停止在akka的规范方式是什么.这是我目前正在做的一个例子; 我担心我会让它变得复杂.

import akka.actor.{Terminated, Actor, Props, ActorSystem}
import akka.testkit.TestProbe

class MyActor extends Actor {
  import MyActor._
  override def receive: Receive = {
    case Stop => context.stop(self)
  }
}

object MyActor {
  def props = Props(new MyActor)
  case object Stop
}


object MyActorSpec {

  val system = ActorSystem()
  val myActor = system.actorOf(MyActor.props)
  val testProbe = TestProbe()

  case object MyActorStopped

  val watcher = system.actorOf(Props(new Actor {
    context.watch(myActor)
    override def receive: Actor.Receive = {
      case Terminated(`myActor`) => testProbe.ref ! MyActorStopped
    }
  }))

  myActor …
Run Code Online (Sandbox Code Playgroud)

unit-testing scala akka

12
推荐指数
1
解决办法
3074
查看次数

Python:用anaconda安装pymongo

我安装了Anaconda(在ubuntu 12.04.03上),我正在尝试安装,pymongo以便conda识别它.我知道有类似的问题浮出水面; 但是对Python来说是新手,我真的很感激一个明确的答案来帮助我"开始" - 我目前失败了:(

欢呼任何帮助

编辑:

看到这个问题已被搁置,我继续坚持下去.当我跑:

sudo pip install pymongo
Run Code Online (Sandbox Code Playgroud)

安装到/usr/local/lib/python2.7/dist-packages/,Anaconda似乎没有从这个位置导入模块(有谁知道我怎么能改变这个?).所以相反,我跑了:

sudo pip install -d anaconda/pkgs/ pymongo
tar -zxvf pymongo-2.6.3.tar.gz
cd pymongo-2.6.3/
python setup.py install
Run Code Online (Sandbox Code Playgroud)

现在我可以导入了pymongo.这是规范的方式吗?我猜不是......就像我说的,我是新手,所以任何建议或意见都非常赞赏.

python pymongo anaconda conda

8
推荐指数
0
解决办法
1万
查看次数

akka:用于组合来自多个孩子的消息的模式

这是我遇到的模式:

一个演员A有多个孩子C1,...... , Cn. 收到消息后,A将其发送给每个子节点,每个子节点对消息进行一些计算,并在完成时将其发送回A.A然后,我想把所有孩子的结果结合起来传递给另一个演员.

这个问题的解决方案是什么样的?或者这是反模式?在哪种情况下应该如何处理这个问题?

这是一个简单的例子,希望能够说明我目前的解决方案.我担心的是重复的代码(直到对称); 并没有很好地延伸到"很多"的孩子; 并且很难看出发生了什么.

import akka.actor.{Props, Actor}

case class Tagged[T](value: T, id: Int)

class A extends Actor {
  import C1._
  import C2._

  val c1 = context.actorOf(Props[C1], "C1")
  val c2 = context.actorOf(Props[C2], "C2")
  var uid = 0
  var c1Results = Map[Int, Int]()
  var c2Results = Map[Int, Int]()

  def receive = {
    case n: Int => {
      c1 ! Tagged(n, uid)
      c2 ! Tagged(n, uid)
      uid …
Run Code Online (Sandbox Code Playgroud)

concurrency scala mapreduce akka

8
推荐指数
2
解决办法
2839
查看次数

为密封特征创建类型类实例

假设我有一个“广泛的”密封类层次结构:

sealed trait Alphabet
case class A(word: String) extends Alphabet
...
case class Z(word: String) extends Alphabet
Run Code Online (Sandbox Code Playgroud)

并说我为层次结构中的每个子类定义了一个类型类实例:

trait SwearWordFinder[T <: Alphabet] {
  def isSwearWord(x: T): Boolean
}

val swearWordFinderA = new SwearWordFinder[A] { ... }
...
val swearWordFinderZ = new SwearWordFinder[Z] { ... }
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以为Alphabet特征本身定义类型类实例,而不必通过模式匹配来实现(如下所示)?

def isSwearWord(x: Alphabet): Boolean = x match {
  case a: A => swearWordFinderA.isSwearWord(a)
  ...
  case z: Z => swearWordFinderZ.isSwearWord(z)
}
Run Code Online (Sandbox Code Playgroud)

scala typeclass

5
推荐指数
1
解决办法
692
查看次数

Hive 分区、Spark 分区和 Spark 中的连接 - 它们之间的关系

试图了解 Hive 分区与 Spark 分区的关系,最终解决了一个关于连接的问题。

我有 2 个外部 Hive 表;均由 S3 存储桶支持并由 分区date;所以在每个存储桶中都有名称为 format 的键date=<yyyy-MM-dd>/<filename>

问题 1:

如果我将此数据读入 Spark:

val table1 = spark.table("table1").as[Table1Row]
val table2 = spark.table("table2").as[Table2Row]
Run Code Online (Sandbox Code Playgroud)

那么结果数据集将分别有多少个分区?分区等于 S3 中的对象数量?

问题2

假设这两种行类型具有以下架构:

Table1Row(date: Date, id: String, ...)
Table2Row(date: Date, id: String, ...)
Run Code Online (Sandbox Code Playgroud)

并且我想加入table1table2在领域dateid

table1.joinWith(table2,
  table1("date") === table2("date") && 
    table1("id") === table2("id")
)
Run Code Online (Sandbox Code Playgroud)

Spark 是否能够利用被连接的字段之一是 Hive 表中的分区键来优化连接?如果是这样怎么办?

问题 3

假设现在我正在使用RDDs 代替:

val rdd1 = table1.rdd …
Run Code Online (Sandbox Code Playgroud)

hive apache-spark apache-spark-sql apache-spark-dataset

5
推荐指数
1
解决办法
3372
查看次数

R:如何使用...将参数传递给明确定义的多个函数?

V1:假设功能f(x, ...)g(x , ...)可以传递不同的参数.如果我要使用它们来定义一个新函数,我可以通过...明确定义的运算符传递参数吗?举个简单的例子:

f1 = function(x, n = 1) x + n
g1 = function(x, m = 1) x + m
f  = function(x, ...) f1(x, ...)
g  = function(x, ...) g1(x, ...)

h = function(x, ...) {

  fgList = list()
  fgList[["f"]] = f(x, ...)
  fgList[["g"]] = g(x, ...)
  return(fgList)
}

h(1:4)
#  $f
#  [1] 2 3 4 5

#  $g
#  [1] 2 3 4 5

h(1:4, n = 2) …
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
848
查看次数

R:有光泽:增加`textInput`创建的文本输入控件的宽度

我几乎完成了一个Web应用程序,它允许用户使用创建的文本输入控件对Web应用程序下的数据框进行子集化textInput; 请参阅我的相关问题,将字符串解析为表达式.

如果我可以增加此文本输入控件的宽度,它将更加用户友好.有人知道怎么做这个吗?

欢呼任何帮助.

r shiny

4
推荐指数
1
解决办法
3449
查看次数

将逗号分隔的字符串作为列表传递

说我有一个字符串,如"x = 1, y = 'cat', z = NULL".我想获取代码创建的列表list(x = 1, z = 'cat', z = NULL).这是我的第一次尝试,我知道这很可怕:

parse_text <- function(x) parse(text = x)[[1]]
strsplit2 <- function(x, ...) strsplit(x, ...)[[1]] 
trim_whitespace <- function (x) gsub("^\\s+|\\s+$", "", x)

# take 1

x <- "nk = 1, ncross = 1, pmethod = 'backward'"
x <- strsplit2(x, ",")
xs <- lapply(x, strsplit2, "=")
keys <- lapply(xs, function(x) trim_whitespace(x[1]))
vals <- lapply(xs, function(x) parse_text(x[2]))

setNames(vals, keys)
Run Code Online (Sandbox Code Playgroud)

这就是我想象的一种更规范的方法:

# take …
Run Code Online (Sandbox Code Playgroud)

r

3
推荐指数
1
解决办法
796
查看次数

Scala IDE:无法将XML文件读入scala工作表

Scala新手,XML在Scala工作表中读取文件时遇到问题.到目前为止,我有:

  • 下载了Scala IDE(适用于Windows)并将其解压缩到我的C:\驱动器中
  • 使用以下文件路径创建了Scala项目: C:\eclipse\workspace\xml_data
  • 使用以下数据创建xml文件...\xml_data\music.xml
  • 创建了一个包sample_data并创建了以下对象(带有文件路径:) ...\xml_data\src\sample_data\SampleData.scala:

    package sample_data
    
    import scala.xml.XML
    
    object SampleData {
      val data = XML.loadFile("music.xml")
    }
    
    object PrintSampleData extends Application {
      println(SampleData.data)
    }
    
    Run Code Online (Sandbox Code Playgroud)

但是,当我创建Scala工作表时,这运行正常test_sample_data.sc:

import sample_data.SampleData

object test {
  println(SampleData.data) 
}
Run Code Online (Sandbox Code Playgroud)

我得到的java.lang.ExceptionInInitializerError包括:Caused by: java.io.FileNotFoundException: music.xml (The system cannot find the file specified).

工作区是C:\eclipse\workspace.任何帮助或见解非常感谢.干杯!

更新:

按照aepurniet的建议,我跑了new java.io.File(".").getAbsolutePath()并分别获得了以下内容:

  • SampleData.scala: C:\eclipse\workspace\xml_data\.
  • test_sample_data.sc: C:\eclipse\. …

eclipse scala

2
推荐指数
1
解决办法
1466
查看次数