小编ab_*_*_sp的帖子

解释Spark中的聚合功能

我正在寻找一些更好的解释python中通过spark提供的聚合功能.

我的例子如下(使用Spark 1.2.0版本的pyspark)

sc.parallelize([1,2,3,4]).aggregate(
  (0, 0),
  (lambda acc, value: (acc[0] + value, acc[1] + 1)),
  (lambda acc1, acc2: (acc1[0] + acc2[0], acc1[1] + acc2[1])))
Run Code Online (Sandbox Code Playgroud)

输出:

(10, 4)
Run Code Online (Sandbox Code Playgroud)

我得到的预期结果(10,4)1+2+3+44个元素的总和.如果我改变传递给聚合函数初始值(1,0)(0,0) 我得到以下结果

sc.parallelize([1,2,3,4]).aggregate(
    (1, 0),
    (lambda acc, value: (acc[0] + value, acc[1] + 1)),
    (lambda acc1, acc2: (acc1[0] + acc2[0], acc1[1] + acc2[1])))
Run Code Online (Sandbox Code Playgroud)

输出:

(19, 4)
Run Code Online (Sandbox Code Playgroud)

该值增加9.如果我将其更改为(2,0),则值将转到(28,4)依此类推.

有人可以向我解释这个值的计算方法吗?我预计价值会上升1而不是9,(11,4)我预计会看到(19,4).

python lambda aggregate apache-spark rdd

50
推荐指数
3
解决办法
3万
查看次数

对Kubernetes上的env变量的字符串操作

我有一个关于Kubernetes YAML字符串操作的问题.

我需要根据部署的容器的主机名设置一个env变量,并为这个变量附加一个端口号.

 env:
    - name: MY_POD_NAME
      valueFrom:
        fieldRef:
          fieldPath: metadata.name
Run Code Online (Sandbox Code Playgroud)

如何创建另一个使用MY_POD_NAME的env变量并使其看起来像这样:uri:// $ MY_POD_NAME:9099 /

这必须定义为env变量.Kubernetes YAML文件中是否允许字符串操作?

kubernetes

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

标签 统计

aggregate ×1

apache-spark ×1

kubernetes ×1

lambda ×1

python ×1

rdd ×1