#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?