Я хочу использовать pySpark
для реструктуризации своих данных, чтобы я мог использовать их для MLLib
моделей, в настоящее время для каждого пользователя у меня есть массив массива в одном столбце, и я хочу преобразовать его в уникальные столбцы с количеством,
Users | column1 |
user1 | [[name1, 4], [name2, 5]] |
user2 | [[name1, 2], [name3, 1]] |
должно быть преобразовано в:
Users | name1 | name2 | name3 |
user1 | 4.0 | 5.0 | 0.0 |
user2 | 2.0 | 0.0 | 1.0 |
Я придумал метод, который использует циклы, но я ищу способ, который может использовать искру, потому что данные огромны.Не могли бы вы дать мне какие-нибудь советы?Спасибо.
Редактировать: Все уникальные имена должны быть представлены в виде отдельных столбцов с оценкой, соответствующей каждому пользователю.В основном, разреженная матрица.Я сейчас работаю с пандами, и код, который я использую для этого,
data = data.applymap(lambda x: dict(x)) # To convert the array of array into a dictionary
columns = list(data)
for i in columns:
# For each columns using the dictionary to make a new Series and appending it to the current dataframe
data = pd.concat([data.drop([i], axis=1), data[i].apply(pd.Series)], axis=1)