首页 > 解决方案 > groupByKey 可以用来优化和减少计算工作吗

问题描述

我有这样的数据框

empId|firstName|lastName|DOB|effStartDate|effEndDate|........

121|拉胡尔|贾斯瓦尔|27-10-1194|03-05-2019|03-05-2020|.....

147|开发|库马尔|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() 是否适合这里并减少任何类型的计算工作

请高手指导一下

标签: dataframeapache-sparkapache-spark-sql

解决方案


推荐阅读