Итак, вы, кажется, неправильно понимаете несколько основных вещей. Две функции: foreachPartition
и mapPartition
работают с каждым разделом в наборе данных. Переменная itr
в вашем
part_part_dataDs.foreachPartition(itr -> ....
относится к итератору раздела. Вы можете использовать этот итератор для перебора списка строк, как если бы это был список строк.
В принципе, вы могли бы написать что-то вроде этого:
part_part_dataDs.foreachPartition(itr ->{
itr.foreach(row -> {
System.out.println(row.getString(0));
})
})
, хотя я должен подчеркнуть, что этот фрагмент кода не имеет никакого смысла вообще. Оператор println
будет выполняться на каком-то случайном рабочем узле, так что это не то, что вы бы увидели, если бы вы не работали на одном узле. Кроме того, этот пример должен просто использовать foreach
вместо foreachPartition
, но так как это выглядит как надуманный игрушечный пример, я не могу сказать, действительно ли вам требуется foreachPartition
или нет.