Я предполагаю, что вы имели в виду RDD[(Double, Double)]
. Вы можете сначала преобразовать каждую точку в ограничивающий прямоугольник нулевой области, а затем уменьшить все ограничивающие прямоугольники, комбинируя все четыре значения одновременно:
val boundingBox =
points
.map{ case (x, y) => (x, x, y, y) }
.reduce { case ((xl, xr, xb, xt), (yl, yr, yb, yt)) =>
(xl min yl, xr max yr, xb min yb, xt max yt)
}
Ярлыки l, r, b, t
означают left
, right
, bottom
, top
.
Ваш код с min
не работает, потому что RDD.min
не принимает никаких аргументов (по крайней мере, в первом, неявном списке аргументов). Там тоже вроде бы нет minBy
/ maxBy
.