scala:foldLeft with zipWithIndex

问题描述 投票:1回答:1

以下代码有效:

likertRoundDfSeq:Seq[DataFrame] =    ......
likertRoundDfSeq match
  {

    case head :: tail => tail.foldLeft(head){(dforg,df1)=>
      DataFrameUtils.join(dforg,devianceFromAverageOneRound(df1),"A_RowId")
    }
  }

但是,我需要添加一个索引作为devianceFromAverageOneRound的附加参数

我想用zipWithIndex这样做也许,像这样:

 likertRoundDfSeq match
  {

    case head :: tail => tail.zipWithIndex.foldLeft(head){(dforg,df1)=>
      DataFrameUtils.join(dforg,devianceFromAverageOneRound(df1,*myzipindex*),"A_RowId" )
    }
  }

但我不确定如何在这种情况下突破数据帧和idx。 Intellij似乎没有引导我,所以我有点迷失

任何意见,将不胜感激

scala
1个回答
2
投票

DF Seq的尾部现在是Tuple2 [DataFrame,Long]的列表,因此您的foldLeft应如下所示:

case head :: tail => tail.zipWithIndex.foldLeft(head){ (dforg, df1) =>
  DataFrameUtils.join(dforg, devianceFromAverageOneRound(df1._1, df1._2), "A_RowId")

这假设你的新devianceFromAverageOneRound(DataFrame, Long)仍然返回DataFrame(而不是Tuple2[DataFrame, Long])。

© www.soinside.com 2019 - 2024. All rights reserved.