У меня есть два фрейма данных, из которых мне нужно получить информацию, чтобы сгенерировать третий. Первый фрейм данных содержит информацию об итерациях элемента пользователем, например,
+-----+-----------+-----------+
|user | itemId |date |
+-----+-----------+-----------+
|1 | 10005880 |2019-07-23 |
|2 | 10005903 |2019-07-23 |
|3 | 10005903 |2019-07-23 |
|1 | 12458442 |2019-07-23 |
|1 | 10005903 |2019-07-26 |
|3 | 12632813 |2019-07-26 |
|2 | 12632813 |2019-07-26 |
+-----+-----------+-----------+
У него нет определенного порядка, и у каждого пользователя есть несколько строк. Второй фрейм данных - это просто список элементов с индексом, например,
+-----------+-----------+
| itemId |index |
+-----------+-----------+
| 10005880 |1 |
| 10005903 |2 |
| 12458442 |3 |
| ... | ... |
| 12632813 |2000000 |
+-----------+-----------+
Этот фрейм данных довольно длинный, и не каждый элемент представлен во фрейме данных взаимодействия элементов. Что необходимо, так это третий фрейм данных, где каждая строка содержит векторизованное представление взаимодействий элементов пользователя в виде массива в пределах одного столбца, например,
+-----+--------------------+
|user | interactions |
+-----+--------------------+
|1 | <1, 1, 1, ..., 0> |
|2 | <0, 1, 0, ..., 1> |
|3 | <0, 1, 0, ..., 1> |
+-----+--------------------+
Где массив имеет 1, если пользователь взаимодействовал с элементом по этому индексу, иначе 0. Есть ли простой способ сделать это в pyspark?
interactions
вектор? Список индексов из второго DataFrame? В вашем примере не очень понятно - person blackbishop   schedule 09.01.2020interaction
, 2 000 000+ элементов? - person jxc   schedule 10.01.2020