В scala есть функция init
, которая дает вам все элементы, кроме последнего в коллекции .Вы можете использовать этот
val newRdd = sc.parallelize(rdd.collect().toList.init)
, что даст вам новый rdd, удалив последний элемент , и это лучше, чем ваш подход, так как метод сбора используется только один раз.
И rdd распространяется, и невозможно определить, какая из них является последней строкой, не собирая ее в один узел.
Здесь Я собрал ее в узел драйвера . Вы можете использовать другую технику, чтобы собрать одного исполнителя и использовать init
function