小编Alg*_*man的帖子

R 数据表中最近的“n”滚动连接

使用data.table,我们可以使用 将一个数据集中的值与另一个数据集中的最近值连接起来roll = "nearest"。一些示例数据:

dt1 <- data.table(x = c(15,101), id1 = c("x", "y"))
dt2 <- data.table(x = c(10,50,100,200), id2 = c("a","b","c","d"))
Run Code Online (Sandbox Code Playgroud)

使用roll = "nearest",我可以将“dt1”中的每个“x”与 dt2 中最接近的“x”连接起来:

dt2[dt1, roll = "nearest", on = "x"]
#     x  id2 id1
# 1: 15    a   x
# 2: 101   c   y
Run Code Online (Sandbox Code Playgroud)

例如,x = 15在 'dt1' 中,x'dt2' 中最接近的值是x = 10,我们得到相应的 'id2',即"a"

但是,如果不是获得一个最近的值,而是想要获得n 个最近的值呢?例如,如果我想要2 个最接近的 x …

join r data.table

13
推荐指数
3
解决办法
499
查看次数

Apache Giraph - 无法在拆分主/工作模式下运行,因为一次只能执行1个任务

我在这里使用PageRank Benchmark示例运行了带有hadoop 2.2.0的Giraph 1.0.0 .

突然间我得到了这个错误结果:

线程"main"中的异常java.lang.IllegalArgumentException:checkLocalJobRunnerConfiguration:使用LocalJobRunner时,必须只有一个worker,因为一次只能有一个任务!在org.apache.giraph.job.GiraphJob.checkLocalJobRunnerConfiguration(GiraphJob.java:151)在org.apache.giraph.job.GiraphJob.run(GiraphJob.java:225)在org.apache.giraph.benchmark.GiraphBenchmark.run (GiraphBenchmark.java:90)在org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)在org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)在org.apache. giraph.benchmark.PageRankBenchmark.main(PageRankBenchmark.java:71)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.invoke(Method.java:606)在org.apache.hadoop.util.RunJar.main(RunJar.java:212)

当我将工人数量改为1时,我得到了:

线程"main"中的异常java.lang.IllegalArgumentException:checkLocalJobRunnerConfiguration:使用LocalJobRunner时,由于一次只有1个任务,因此无法在拆分主/工作模式下运行!在org.apache.giraph.job.GiraphJob.checkLocalJobRunnerConfiguration(GiraphJob.java:157)在org.apache.giraph.job.GiraphJob.run(GiraphJob.java:225)在org.apache.giraph.benchmark.GiraphBenchmark.run (GiraphBenchmark.java:90)在org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)在org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)在org.apache. giraph.benchmark.PageRankBenchmark.main(PageRankBenchmark.java:71)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.invoke(Method.java:606)在org.apache.hadoop.util.RunJar.main(RunJar.java:212)

有解决方案吗

hadoop mapreduce giraph

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

为什么我的 Spark 应用程序的 Web UI 不显示 DAG 可视化,但 History Server 却显示?

我目前正在使用 IntelliJ IDEA 来开发和运行我的 Spark 应用程序。我已将其设置为conf/spark-defaults.conf

spark.eventLog.enabled           true
spark.eventLog.dir               file:/home/user/spark-2.2.0/spark-events
spark.history.fs.logDirectory    file:/home/user/spark-2.2.0/spark-events
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我也有这个:

val session = SparkSession.builder()
    .appName("MySparkApp")
    .master("spark://user:7077")
    .config("spark.jars", "target/mysparkapp.jar")
    .config("spark.eventLog.enabled","true")
    .config("spark.eventLog.dir","file:/home/user/spark-2.2.0/spark-events")
    .config("spark.history.fs.logDirectory","file:/home/user/spark-2.2.0/spark-events")
    .getOrCreate()
Run Code Online (Sandbox Code Playgroud)

应用程序完成后,我可以在 Spark History Server 中看到 DAG 可视化。但是,spark web ui 中没有显示 DAG 可视化。知道为什么会这样吗?

我正在使用 Ubuntu 57.0.1(64 位)的 Mozilla Firefox。这是我的历史服务器的屏幕截图:

在此输入图像描述

我的网络用户界面:

在此输入图像描述

apache-spark

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

Spark线性回归中获取协方差矩阵

我一直在研究 Spark 的文档,但仍然找不到如何在进行线性回归后获取协方差矩阵。

给定输入训练数据,我做了一个非常简单的线性回归,与类似:

val lr = new LinearRegression()
val fit = lr.fit(training)
Run Code Online (Sandbox Code Playgroud)

获取回归参数很简单fit.coefficients,但似乎没有关于如何获取协方差矩阵的信息。

为了澄清一下,我正在寻找类似于vcovR 中的函数。有了这个,我应该能够做一些类似vcov(fit)获取协方差矩阵的事情。任何其他有助于实现这一目标的方法也都可以。


编辑

这里详细讨论如何从线性回归得到协方差矩阵。标准差很容易获得,因为它是由 提供的fit.summary.meanSsquaredError。然而,参数(X'X) -1很难得到。看看这是否可以用来以某种方式计算协方差矩阵,这将是很有趣的。

scala covariance linear-regression apache-spark apache-spark-mllib

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

鉴于一般的 3D 平面方程,我如何在 python matplotlib 中绘制它?

假设我有一个 3D 平面方程:

ax+by+cz=d

如何在 python matplotlib 中绘制它?

我看到了一些使用 的示例plot_surface,但它接受 x、y、z 值作为二维数组。我不明白如何将我的方程转换为参数输入plot_surface或 matplotlib 中可用于此目的的任何其他函数。

python 3d matplotlib

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

如何在 Play 中通过网络套接字向 actor 发送消息!框架?

这是一个相当基本的问题,但在谷歌搜索几个小时后我找不到令人满意的答案。从这里的例子来看,制作网络套接字的方法是这样的:

控制器代码:

import play.api.mvc._
import play.api.libs.streams.ActorFlow
import javax.inject.Inject
import akka.actor.ActorSystem
import akka.stream.Materializer

class Application @Inject()(cc:ControllerComponents) (implicit system: ActorSystem, mat: Materializer) extends AbstractController(cc) {

  def socket = WebSocket.accept[String, String] { request =>
    ActorFlow.actorRef { out =>
      MyWebSocketActor.props(out)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

演员代码:

import akka.actor._

object MyWebSocketActor {
  def props(out: ActorRef) = Props(new MyWebSocketActor(out))
}

class MyWebSocketActor(out: ActorRef) extends Actor {
  def receive = {
    case msg: String =>
      out ! ("I received your message: " + msg)
  }
}
Run Code Online (Sandbox Code Playgroud)

但是我到底如何通过网络套接字将消息从控制器发送到参与者呢?假设在控制器代码中,我有一个操作代码,用于处理按下按钮时的情况,它将向演员发送一个字符串块。如何从控制器代码将此字符串发送到上面的参与者?

scala websocket actor akka playframework

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

基于 R 中的多个范围获取数据框中的行

假设我有这张桌子

   a  b
1  5 12
2  6 17
3  7 28
4  8 12
5  9 17
6 10 28
7 15 12
8 25 14
9 13 29
Run Code Online (Sandbox Code Playgroud)

还有另一个带有索引范围的表:

  start end
1     2   3
2     5   7
Run Code Online (Sandbox Code Playgroud)

我想根据第二个表中的索引范围获取第一个表中的行,并使用组名进行区分,如下所示:

   a  b  group
2  6  17  1
3  7  28  1
5  9  17  2
6  10 28  2
7  15 12  2
Run Code Online (Sandbox Code Playgroud)

我如何在 R 中实现这一目标?

r

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

更改javamelody的storage-directory

我需要监视java应用程序,我正在使用javamelody.

但问题是,我必须得到javamelody的数据,所以我可以在另一个屏幕上显示它.我知道javamelody将其rdd文件存储在temp/javamelody目录中,现在我需要将storage-directory更改为另一个路径,以便我可以从该路径获取数据.

可以吗?

谢谢

java monitoring

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

磁盘写入不适用于C中的malloc

我使用C代码写入磁盘.

首先我尝试使用malloc,发现写入不起作用(写入返回-1):

fd = open('/dev/sdb', O_DIRECT | O_SYNC | O_RDWR);
void *buff = malloc(512);
lseek(fd, 0, SEEK_SET);
write(fd, buff, 512);
Run Code Online (Sandbox Code Playgroud)

然后我改变了第二行,它有效:

void *buff;
posix_memalign(&buff,512,512);
Run Code Online (Sandbox Code Playgroud)

但是,当我将lseek偏移量更改为1:时lseek(fd, 1, SEEK_SET);,写入不再起作用.

首先,为什么没有malloc工作?

然后,我知道在我的情况下,posix_memalign保证内存对齐的起始地址必须是512的倍数.但是,内存对齐和写入不应该是一个单独的进程吗?那么为什么我不能写任何我想要的偏移?

c io disk

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

Scala - 出队不返回正确的结果

我有一个 List[Any] 队列,但不知何故出队不会返回正确的结果,也不会从队列中删除该项目。知道为什么会这样吗?

下面是一个例子:

scala> val a = scala.collection.immutable.Queue(List(1, "A", "B", 987), List(2, "C", "D", 456), List(3, "E", "F", 123))
a: scala.collection.immutable.Queue[List[Any]] = Queue(List(1, A, B, 987), List(2, C, D, 456), List(3, E, F, 123))

scala> a.dequeue
res5: (List[Any], scala.collection.immutable.Queue[List[Any]]) = (List(1, A, B, 987),Queue(List(2, C, D, 456), List(3, E, F, 123)))

scala> a
res6: scala.collection.immutable.Queue[List[Any]] = Queue(List(1, A, B, 987), List(2, C, D, 456), List(3, E, F, 123))
Run Code Online (Sandbox Code Playgroud)

queue scala

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

Libgdx - 从Rectangle.overlap(Rectangle)获取交叉矩形

有没有办法知道libgdx中两个Rectangle之间的交叉矩形区域,如c#http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.rectangle.intersect.aspx中的Rectangle ?

我需要获得两个矩形之间的交集矩形区域,但libgdx中的重叠方法只返回两个矩形是否相交的布尔值.我已经阅读过Intersector类,但它没有提供任何帮助.

java eclipse android libgdx

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

Libgdx GestureListener处理Hold TouchDown

我正在使用libgdx来开发mygame.

我正在使用GestureListener来处理我的触摸事件.我的目标是当玩家在屏幕上触摸时让角色向右或向左移动.

问题是,GestureListener没有任何方法来处理这个问题.如果我正在使用平移,则播放器必须滑动才能触发该方法.此外,GestureListener没有touchUp方法,所以我无法组合touchDown和touchUp.

有没有办法做到这一点?

java eclipse android libgdx

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

Scala-分为计数列表和元素列表

假设我有这样的Scala列表:

val mylist = List(4,2,5,6,4,4,2,6,5,6,6,2,5,4,4)
Run Code Online (Sandbox Code Playgroud)

如何将其转换为计数列表和元素列表?例如,我想转换mylist为:

val count = List(3,5,3,4)
val elements = List(2,4,5,6)
Run Code Online (Sandbox Code Playgroud)

这意味着,在中mylist,我有3个出现2,有5个出现4,依此类推。

在过程中,这很容易,因为我可以制作两个空列表(用于计数和元素)并在进行迭代时填充它们。但是,我不知道如何在Scala中实现这一目标。

functional-programming scala

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