Как объединить два фрейма данных Spark с разными схемами в Java? - PullRequest
0 голосов
/ 19 марта 2020

Я хочу выполнить объединение двух Spark-Dataframes, которые имеют разную схему / разное количество столбцов. В качестве результата я хотел бы получить DataFrame, содержащий все строки двух базовых фреймов данных, в которых столбцы заполнены нулем, если не заполнены. Я нашел несколько идей сделать это в Python и Scala, но я не смог заставить это работать в Java.

Кто-нибудь уже имел такую ​​же проблему и нашел решение? То, что я до этого делал в Scala, было:

def getAllColums(myCols: Set[String], allCols: Set[String]) = {
  allCols.toList.map(x => x match {
    case x if myCols.contains(x) => col(x)
    case _ => lit(null).as(x)
  })
}

var df1_cols = df1.columns.toSet
var df2_cols = df2.columns.toSet
var total_cols = df1_cols ++ df2_cols // union
val union_df = df1.select(getAllColums(df1_cols, total_cols): _*).union(df2.select(getAllColums(df2_cols, total_cols): _*))

Заранее благодарен за любую помощь!

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