有没有办法在 spark 或 pyspark 中模仿 R 的高阶(二进制)函数 shorthand 语法?

Is there a way to mimic R's higher order (binary) function shorthand syntax within spark or pyspark?

R中,我可以这样写:

## Explicit
Reduce(function(x,y) x*y, c(1, 2, 3))
# returns 6

不过,我也可以通过以下方式不那么明确地做到这一点:

## Less explicit
Reduce(`*`, c(1, 2, 3))
# also returns 6


pyspark 中,我可以执行以下操作:

rdd = sc.parallelize([1, 2, 3])
rdd.reduce(lambda a, b: a * b)


问题:你能用 pyspark 或某种匿名函数模仿 R 的 Reduce('*', ...) 的 "shorthand"(不太明确)语法吗?

在 R 中,您提供了一个二元函数。乘法运算符(与所有运算符一样)实际上是一个二元函数。输入

`*`(2, 3)

看看我的意思。

在Python中,乘法等价于operator.mul

所以:

rdd = sc.parallelize([1, 2, 3])
rdd.reduce(operator.mul)