Искра переопределить переменную dataframe без использования var - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть один API, который выполняет операцию удаления на фрейме данных, как показано ниже

def deleteColmns(df:DataFrame,clmList :List[org.apache.spark.sql.Column]):DataFrame{
    var ddf:DataFrame = null 
    for(clm<-clmList){
       ddf.drop(clm)
    }
return ddf
}

Поскольку не рекомендуется использовать var в функциональном программировании, как избежать этой ситуации

1 Ответ

0 голосов
/ 15 ноября 2018

С Spark> 2.0 вы можете отбросить несколько столбцов, используя последовательность имен столбцов:

val clmList: Seq[Column] = _
val strList: Seq[String] = clmList.map(c => s"$c")
df.drop(strList: _*)

В противном случае вы всегда можете использовать foldLeft, чтобы сложить влево на DataFrame и оставьте свои столбцы:

clmList.foldLeft(df)((acc, c) => acc.drop(c))

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...