Другой, немного другой подход. Значение этого, на мой взгляд, заключается в том, что оно будет легче обобщать до Rows
с более чем 2 элементами. Также стоит отметить, что структура данных, которую вы предварительно просматриваете в своем вопросе, представляет собой Pandas DF со столбцом, состоящим из списков структур данных PySpark Row
, и фактически не является СДР.
from pyspark.sql import Row
# recreate the individual entries of the recommendation column
# these are lists of pyspark Row data structures
df_recommend = pd.DataFrame({'recommendations': (
[Row(item=0, rating=0.005226806737482548),
Row(item=23, rating=0.0044402251951396465),
Row(item=4, rating=0.004139747936278582)],)})
# now extract the values using the asDict method of the Row
df_recommend['extracted_values'] = (
df_recommend['recommendations']
.apply(lambda recs: [list(x.asDict().values()) for x in recs])
)