小编Man*_*oid的帖子

Apache Spark 中的映射与过滤器

来自 Apache Spark 的官方文档:

http://spark.apache.org/docs/latest/rdd-programming-guide.html

map(func):返回一个新的分布式数据集,该数据集是通过函数func传递源的每个元素形成的。

filter(func) 返回一个新数据集,该数据集通过选择源中 func 返回 true 的那些元素而形成。

大胆地说,这是一个很大的区别吗?真的有区别吗?

apache-spark

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

是否使用compareTo

我必须比较一个自定义类的对象,比如说A。

比较是基于A的int成员(例如mem)进行的简单比较。

因此,在比较器实现中,我可以执行以下操作:

(A a1, A a2) -> {return (Integer)a1.getMem().compareTo(a2.getMem());}
Run Code Online (Sandbox Code Playgroud)

或者,我可以自己比较:

(A a1, A a2) -> {
     if(a1.getMem() > a2.getMem()){
         return 1;
     }else{
        if(a1.getMem() < a2.getMem()) {
            return -1;
         }else{
             return 0
          }
     }
}
Run Code Online (Sandbox Code Playgroud)

哪种方法更好?

第一种方法的代码行少得多,但是内部compareTo所做的与第二种方法相同。

java comparator

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

在 Scala 中处理两个选项

我有 2 个选项,我需要取它们持有的值的平均值。

有可能缺少一个或两个。如果缺少其中一个值,我只会将另一个值作为平均值。但如果两者都缺失,我会求助于一些默认值。

如何以干净的方式做到这一点?

我可以使用 isEmpty 检查值的缺失,但是这与空检查不一样吗?

scala scala-option

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

使用速率代替微米的总和/计数

在此链接中,它说明了速率必须用于微米度量的原因。

Representing a counter without rate normalization over some time window is rarely useful, as the representation is a function of both the rapidity with which the counter is incremented and the longevity of the service.
Run Code Online (Sandbox Code Playgroud)

我仍然无法理解为什么不直接进行求和/计数。

任何输入都有帮助。

prometheus micrometer

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

Java 流:限制不适用于 Random().ints().sorted()

我有以下代码:

new Random().ints()
            .map(i -> i / 2)
            .limit(100)
            .toArray()
Run Code Online (Sandbox Code Playgroud)

...并且它按预期工作。

但这不起作用:

new Random().ints()
            .sorted()
            .map(i -> i / 2)
            .limit(100)
            .toArray()
Run Code Online (Sandbox Code Playgroud)

它抛出:

Exception in thread "main" java.lang.IllegalArgumentException: Stream size exceeds max array size
Run Code Online (Sandbox Code Playgroud)

limit 不应该使流短路并帮助将其限制为 100 个元素吗?

java java-8 java-stream

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

纵向扩展与横向扩展

这两个服务器扩展选项哪个更合适?乍一看,横向扩展会导致网络发挥更大的作用,因此会出现延迟等相关问题。那么为什么我应该选择横向扩展而不是纵向扩展呢?

server

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

SBT:如何确保本地快照依赖项被拾取?

我有 2 个 scala 项目,A 和 B。A 依赖于 B。在将更改推送到中央远程存储库之前,我必须进行一些本地测试。所以我在B中进行更改,将其version.sbt更改为0.0.1-SNAPSHOT并使用本地发布

sbt publishLocal
Run Code Online (Sandbox Code Playgroud)

我可以看到 0.0.1-SNAPSHOT 保存在“C:\var.ivy2\local”中。

在 A 中,我将 DependencyManagement.scala 更改为现在选取 B 的快照版本:

val BVersion = "0.0.1-SNAPSHOT"
Run Code Online (Sandbox Code Playgroud)

但在调试 A 期间,我看到 B 的类是从以下 jar 中获取的:C:\Users\myusername\AppData\Local\Coursier\cache\....\artifactory\virtual-ivy

如何确保选择快照版本?

scala sbt

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

Cassandra故障检测机制

Cassandra 有 gossiper 实现(类 org.apache.cassandra.gms.Gossiper)以及“Phi 应计故障检测器”的实现(类 org.apache.cassandra.gms.FailureDetector)。

据我所知,两者都是故障检测机制。那么 Cassandra 到底使用哪一项来检测节点故障呢?

cassandra

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

Scala 编译器:检测纯/不纯函数

在 Scala、Haskell 等 FP 语言中,使用了纯函数,这使得编译器可以优化代码。例如:

val x = method1()// a pure function call
val y = method2// another pure function call
val c = method3(x,y)
Run Code Online (Sandbox Code Playgroud)

由于method1method2是纯函数,因此评估彼此独立,编译器可以并行化这两个调用。

像 Haskell 这样的语言内部有结构(比如 IO monad),它告诉函数是纯函数还是执行一些 IO 操作。但是 Scala 编译器如何检测一个函数是纯函数呢?

scala pure-function

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

kubectl apply ingress:未知字段错误

我的入口为:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: mongoexpress-ingress
spec:
  rules:
  - host: mylocalmongoexpress.com
    http:
      paths:
      - backend:
          serviceName: mongoexpress-service
          servicePort: 8081
Run Code Online (Sandbox Code Playgroud)

当我运行“kubectl apply -f mongoexpress-ingress.yaml”时,出现错误:

错误:验证“mongoexpress-ingress.yaml”时出错:验证数据时出错:[ValidationError(Ingress.spec.rules[0].http.paths[0].backend):io.k8s.api 中的未知字段“serviceName”。 networking.v1.IngressBackend,ValidationError(Ingress.spec.rules [0] .http.paths [0] .backend):io.k8s.api.networking.v1.IngressBackend中的未知字段“servicePort”,ValidationError(Ingress.spec .rules[0].http.paths[0]): io.k8s.api.networking.v1.HTTPIngressPath] 中缺少必填字段“pathType”;如果您选择忽略这些错误,请使用 --validate=false 关闭验证

浏览在线资源,我在 yaml 文件中找不到问题。

那么我在这里缺少什么?

kubernetes kubectl kubernetes-ingress

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