Выборка с уменьшением карты

#random #mapreduce #sample

#Случайный #mapreduce #образец

Вопрос:

Допустим, у меня есть N точек данных на m разных машинах (распределенных), а N — порядка миллионов, и я хочу получить K выборок точки данных распределенным способом. А также я не знаю, сколько точек данных у меня есть на каждой машине. Один из способов — перебрать каждую машину и каждую точку данных, сгенерировать случайное число r и, если r <= K / 10, сохранить его как одну из выборок, в противном случае перейти к следующей точке данных. По ожиданиям, у меня должно быть K / n выборок из всех точек. Однако мне нужно ровно K / N точек, как я могу убедиться, что у меня есть все точки данных K / N (и точно K / N) только за один проход по данным?

Комментарии:

1. можете ли вы сопоставить каждую точку данных (random_generated_number, data_point) и в редукторе просто взять верхние K точек данных?

2. итак, в этом случае сортировка — это та часть, которая выполняется с помощью map reduce?