pyspark dataframe для rdd принимает только значения

Я хотел бы преобразовать кадр данных в rdd, но просто взять значения, подобные этому формату rdd:

[(1, 19997, 16091), (1, 24374, 7017), (3, 20124, 21453)]

попробовал это final_df_new.rdd.map(lambda x:(x)), но это дает

[Row(total_properties_products_quantity=1, userIds=19997, productId=16091),
 Row(total_properties_products_quantity=1, userIds=24374, productId=7017),
 Row(total_properties_products_quantity=3, userIds=20124, productId=21453)]

и я пробовал это:

final_df_new.rdd.map(tuple).take(5)

дает:

[(1, 19997, 16091),
 (1, 24374, 7017),
 (3, 20124, 21453)]

Кто-нибудь знает, как это сделать?


person bmery77    schedule 24.06.2020    source источник
comment
[d.asDict().values() for d in data], где data — ваш список Row, но это предполагает, что asDict упорядочены (что зависит от вашей версии Python).   -  person pault    schedule 24.06.2020
comment
в чем разница между вашим ожидаемым результатом: [(1, 19997, 16091), (1, 24374, 7017), (3, 20124, 21453)] и тем, который вы получили от final_df_new.rdd.map(tuple).take (5) ? Они выглядят одинаково для меня. можешь немного объяснить? Также предоставьте код для создания тестового фрейма данных.   -  person Raghu    schedule 25.06.2020
comment
См. также: Сбор результатов фильтра PySpark Dataframe в переменная   -  person pault    schedule 26.06.2020