Scala сделать тип возвращаемого значения функции как DataFrame => DataFrame, а не как DataFrame - PullRequest
0 голосов
/ 02 мая 2020
private def example(channelRollups: Seq[String]): Seq[(String, String)]={
seqOfElement.flatMap(first => seqOfElement.
      filter(second => first.toLowerCase() < second.toLowerCase()).
      map((first, _)))

}
def addProductCol(df: DataFrame, cols: (String, String)): DataFrame = {
  df.withColumn(s"${cols._1}_${cols._2}", df(cols._1) * df(cols._2))
}

def addAllProductCols(df: DataFrame): DataFrame = {
 colPairs = example(exampleSeq)
  colPairs.foldLeft(df)(addProductCol)
}

Вывод

colPairs = Seq(("left", "right"), ("middle", "right"))
+----+------+-----+
|left|middle|right|
+----+------+-----+
|   2|     3|    5|
|   7|    11|   13|
|  17|    19|   23|
+----+------+-----+

+----+------+-----+----------+------------+
|left|middle|right|left_right|middle_right|
+----+------+-----+----------+------------+
|   2|     3|    5|        10|          15|
|   7|    11|   13|        91|         143|
|  17|    19|   23|       391|         437|
+----+------+-----+----------+------------+

Вместо непосредственного добавления столбца в DataFrame, можем ли мы изменить в DataFrame => DataFrame или мы можем сказать преобразование ??

 def example2 : DataFrame => DataFrame = {
    dataFrame => {
      dataFrame.
        withColumn(Column, when(col(ORDER_DATETIME_KEY).isNotNull, 1).otherwise(0))
    }
  }

Так в основном я хочу сделать первый пример наподобие example2, в котором я буду возвращать dataType как DataFrame => DataFrame, а не как DataFrame

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