#python #apache-spark #pyspark #apache-spark-sql
#python #apache-spark #pyspark #apache-spark-sql
Вопрос:
У меня есть данные о пользователях, которые работали с несколькими компаниями.Некоторые пользователи, которые работали в нескольких компаниях одновременно. Как объединить общий опыт без учета опыта перекрытия. Я просмотрел некоторые ссылки, по которым можно найти правильные решения.Любая помощь будет оценена.
ДАННЫЕ EMP CSV
fullName,Experience_datesEmployeed,Experience_expcompany,Experience_expduraation, Experience_position
David,Feb 1999 - Sep 2001, Foothill,2 yrs 8 mos, Marketing Assoicate
David,1994 - 1997, abc,3 yrs,Senior Auditor
David,Jun 2020 - Present, Fellows INC,3 mos,Director Board
David,2017 - Jun 2019, Fellows INC ,2 yrs,Fellow - Class 22
David,Sep 2001 - Present, The John D.,19 yrs, Manager
Ожидаемый результат:
FullName,Total_Experience
David,24.8 yrs
Комментарии:
1. Я думаю, вам нужно будет создать
UDAF
(определяемую пользователем агрегатную функцию), поскольку требования очень специфические. Вам нужно отсортировать всеExperience_dates
для пользователя на основеend_date
( почему? проблема с поискомnon-overlapping intervals
) затем выполните что-то вроде суммирования текущего окна, например (exprience_a experience_b = end_b — start_a, если они перекрываются еще (end_a — start_a) (end_b — start_b)!2. пожалуйста, любую справочную ссылку или псевдокод