У меня есть фрейм данных, как показано ниже
df = pd.DataFrame({
'subject_id':[1,1,1,1,2,2,2,2,3,3,4,4,4,4,4],
'readings' : ['READ_1','READ_2','READ_1','READ_3','READ_1','READ_5','READ_6','READ_8','READ_10','READ_12','READ_11','READ_14','READ_09','READ_08','READ_07'],
'val' :[5,6,7,11,5,7,16,12,13,56,32,13,45,43,46],
})
Мой вышеупомянутый входной фреймворк выглядит так
Хотя приведенный ниже код отлично работает (спасибо Jezrael) в Python pandas, когда я применяю его к реальным данным (более 4M записей), он работает в течение длительного времени. Итак, я пытался использовать pyspark
. Обратите внимание, я уже пробовал _3 _, _ 4 _, _ 5_, которые эквивалентны пандам для крупномасштабной обработки, но тоже не помогли. Приведенные ниже коды делают it generates the summary statistics for each subject for each reading
. Вы можете взглянуть на ожидаемый результат ниже, чтобы получить представление
df_op = (df.groupby(['subject_id','readings'])['val']
.describe()
.unstack()
.swaplevel(0,1,axis=1)
.reindex(df['readings'].unique(), axis=1, level=0))
df_op.columns = df_op.columns.map('_'.join)
df_op = df_op.reset_index()
Можете ли вы помочь мне выполнить описанную выше операцию в pyspark? Когда я попробовал следующее, он выдал ошибку
df.groupby(['subject_id','readings'])['val']
Например, subject_id = 1 имеет 4 чтения, но 3 уникальных чтения. Таким образом, мы получаем 3 * 8 = 24 столбца для subject_id = 1. Почему 8? Потому что это MIN,MAX,COUNT,Std,MEAN,25%percentile,50th percentile,75th percentile
. Надеюсь это поможет
Когда я начал с этого в pyspark, он возвращает ошибку ниже
TypeError: объект GroupedData не подлежит подписке
Я ожидаю, что мой результат будет таким, как показано ниже
summary statistics for each subject for each reading
- person The Great   schedule 22.10.2019subject_id = 1
в сообщении. Дайте мне знать, если у вас возникнут еще какие-либо сомнения - person The Great   schedule 22.10.2019Min,Max,Avg,Count,25th percentile, 75th percentile
. Как видите, я смог сделать это в пандах, но не в pyspark. Вы можете мне помочь? - person The Great   schedule 22.10.2019groupby
. Если вы увидите мою попыткуpyspark
в приведенном выше коде, вы увидите, что у меня есть ошибка. Мне просто нравится воспроизводить тот же код pandas в pyspark - person The Great   schedule 22.10.2019