У меня есть Dataframe примерно так
empId | firstName | lastName | DOB | effStartDate | effEndDate | ........
121 | Rahul | Jaiswal | 27-10 -1194 | 03-05-2019 | 03-05-2020 | .....
147 | Dev | Kumar | 12-03-1995 | 04-08-2019 | 03-05-2020 | .....
121 | Рахул | Джайсвал | 27-10-1194 | 03-05-2019 | 03-05-2020 | .....
.... ..продолжить
Прямо сейчас я извлекаю значение из DF примерно так:
implicit val encoder = kryo[EmployeeJobDataFields]
val sortedDF = df.orderBy(asc(EMP_ID_COLUMN), asc(EFF_START_DATE_COLUMN)).na.fill(EMPTY_STRING)
val recordList: List[EmployeeJobDataFields] = sortedDF
.map(row => {
EmployeeJobDataFields(row.getString(0), row.getString(1), row.getString(2), row.getString(3),
row.getString(4), row.getString(5), row.getString(6), row.getString(7), row.getString(8), row.getString(9)
})(encoder)
.collectAsList
Здесь empId будет повторяться для некоторого пользователя
Это лучшее способ сделать это или у нас есть другой способ улучшить код? Я не уверен, что groupByKey () подойдет здесь и уменьшит количество вычислений
Эксперт, пожалуйста, посоветуйте мне