我有一个数据框df
,有5列
student_id
course_id
course_date
attendance_id
这些列都不是唯一的,但student_id
和attendance_id
的组合将是唯一的。我想通过选择最早的course_date来创建一个对new_df
唯一的新数据框student_id
。在熊猫,我这样做:
new_df = df.groupby(['student_id']).apply(lambda x: x.nsmallest(1,'course_date')).reset_index(drop=1)
如果df有1600行,1000个不同的student_id,那么new_df将有1000行,1000个不同的student_id。
如何在Spark SQL或普通SQL中执行此操作?
答案 0 :(得分:0)
尝试类似:
SELECT student_id, min(course_date)
FROM table_name
GROUP BY student_id