У меня есть некоторые данные в Hive, где у меня ежедневно около 500k
уникальных идентификаторов клиентов.Данные охватывают 2 месяца и делятся на date
.Вот как выглядит распределение -
+----------+---------------+
| date|unique_visitors|
+----------+---------------+
|2019-01-01| 500,000|
|2019-01-02| 500,000|
|2019-01-03| 500,000|
|2019-01-04| 500,000|
|2019-01-05| 500,000|
|2019-01-06| 500,000|
|..........| ..... |
|2019-02-27| 500,000|
|2019-02-28| 500,000|
+----------+---------------+
Я хотел бы реализовать функцию, которая принимает N
в качестве входных данных и дает мне столько записей в день в выходной таблице.
Например, если я задаю N
как 250k
, тогда я хочу 250k
случайных выборок уникальных customerIds для каждого дня для всех 60-дневных данных, чтобы я мог поддерживать согласованность размера аудитории для каждого дня вмоя выходная таблица.
Таким образом, общее количество записей в выходной таблице будет 250k * 60
.Вот как будет выглядеть распределение моей выходной таблицы -
+----------+---------------+
| date|unique_visitors|
+----------+---------------+
|2019-01-01| 250,000|
|2019-01-02| 250,000|
|2019-01-03| 250,000|
|2019-01-04| 250,000|
|2019-01-05| 250,000|
|2019-01-06| 250,000|
|..........| ..... |
|2019-02-27| 250,000|
|2019-02-28| 250,000|
+----------+---------------+
Как этого добиться с помощью Spark?