通过sparklyr启动spark集群时,我注意到所有执行者都可能需要10到60秒的时间才能联机。
现在,我正在使用public class Test{
OuterClass target = ...
Caller mockeCaller = Mockito.mock(Caller.class);
@Test
public void test(){
Mockito.verify(mockCaller, Mockito.times(2)).callToCode(Mockito.any());
}
}
允许他们有时间上网,但是有时花费的时间更长,有时甚至更短。我想要一种编程方式来调整此时间差异,类似于关于Python的this question。所以我想我想通过Sys.sleep(60)
传递getExecutorMemoryStatus
,但是我不确定该怎么做。
要查看我所看到的内容,请运行以下代码以启动yarn-client spark连接,并检查Yarn UI。在事件时间轴中,我们可以看到每个执行者何时联机。
sparklyr
答案 0 :(得分:2)
所以我想我想通过sparklyr传递getExecutorMemoryStatus,但是我不确定该怎么做。
您必须检索SparkContext
对象:
sc <- spark_connect(...)
spark_context(sc) %>%
...
然后invoke
方法:
... %>% invoke("getExecutorMemoryStatus")
一起:
spark_context(sc) %>%
invoke("getExecutorMemoryStatus") %>%
names()
应该给您一个活跃的执行者列表。