Данные группы Spark по дате и данные нулевого заполнения для идентификатора, который отсутствует на дату - PullRequest
0 голосов
/ 23 мая 2018

У меня есть набор искровых данных, мне нужно сгруппировать данные по дате и заполнить нулями данные, если для даты нет идентификатора.Мне также нужно преобразовать набор данных в течение 30 дней, учитывая, что моя конечная дата падает на 30-й день в исходном наборе данных жанра, вот примерный набор данных, с которым я работаю.Каков наилучший подход для этого преобразования?

val genre = sc.parallelize(List(("id1", "2016-05-01", "action",0),
                                    ("id1", "2016-05-03", "horror",1),
                                    ("id2", "2016-05-03", "art",0),
                                    ("id2", "2016-05-04", "action",0))).
                               toDF("id","date","genre","score")

output

+---+----------+------+-----+
| id|      date| genre|score|
+---+----------+------+-----+
|id1|2016-05-01|action|    0|
|id1|2016-05-03|horror|    1|
|id2|2016-05-03|   art|    0|
|id2|2016-05-04|action|    0|
+---+----------+------+-----+

Желаемое значение

+---+----------+------+-----+-----------
|      date| grouped                    |
+---+----------+------+-----+------------
|2016-05-01|[[id1,action,1],[id2,0, 0]] |
|2016-05-02|[[id1,0,0],[id2,0, 0]]      |
|2016-05-03|[[id1,horror,1],[id2,art,0]]|
|2016-05-04|[[id1,0,0],[id2,action, 0]] |
+---+----------+------+-----+-----------
...