Как создать матрицу взаимодействия из очень большого кадра данных pyspark?Python

Программы на Python
Гость
Как создать матрицу взаимодействия из очень большого кадра данных pyspark?

Сообщение Гость »


У меня есть большой фрейм данных pyspark, содержащий два столбца: user_id и item_id. Я хочу создать матрицу взаимодействия из этого кадра данных, где каждая строка соответствует уникальному user_id, а каждый столбец представляет уникальные item_ids.

Я сделал это, выполнив следующий код:

matrix = sdf.groupby('user_id').pivot('item_id').count() Это довольно быстро, но потом я хочу подсчитать количество единиц и нулей в кадре данных, а это очень медленно.

zeros = sum([sdf.filter(col(c) == 0).count() for c в sdf.columns]) # медленно Есть ли способ сделать это быстрее? Я думал об использовании scipy.sparse.dok_matrix, но кажется, что единственный способ заполнить элементы матрицы — это использовать циклы for, что также будет довольно медленно.

Вернуться в «Python»