На самом деле у вас есть PairRDD. Один из лучших способов сделать это - с помощью reduceByKey:
(Scala)
val grouped = rdd.reduceByKey(math.max(_, _))
(Python)
grouped = rdd.reduceByKey(max)
(Java 7)
JavaPairRDD grouped = new JavaPairRDD(rdd).reduceByKey(
new Function2() {
public Integer call(Integer v1, Integer v2) {
return Math.max(v1, v2);
}
});
(Java 8)
JavaPairRDD grouped = new JavaPairRDD(rdd).reduceByKey(
(v1, v2) -> Math.max(v1, v2)
);
API doc для reduceByKey:
Вы можете использовать остальные параметры . Синтаксис:
const hello = (...args) => {
// args is now an array
console.log(args)
}
Затем вы можете использовать его следующим образом:
hello('This ', 'is ', 'an ', 'example') // outputs ['This ', 'is ', 'an ', 'example']
Вы можете передать в него любое количество аргументов.
Итак, вернемся к вашему примеру, у вас может быть что-то вроде
const example = (...targets) => {
return {
target: targets,
endpoint: null,
tick: 500,
verbose: true,
once: false,
}
}
module.exports = example
И вы можете использовать его примерно так
const example = require('./example')
let val = example('google', 'twitter', 'yahoo')
console.log(val)
Параметр rest должен быть последним твоя функция. Поэтому, если вы хотите передать некоторые другие параметры, синтаксис будет
function hello(param, ...rest) {
// rest is an array
...
}
Вы также можете напрямую передать массив или переменную, ссылающуюся на массив:
function hello(param) {
...
console.log(param)
}
hello(["hello", "world"]) // outputs ["hello", "world"]
or
var arr = ["hello", "world"]
hello(arr)
Вы также можете прочитать больше о Array-подобных объектных аргументах здесь