Зацикливание кадра данных из столбца из той же таблицы в Scala - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть DataFrame, в котором он будет содержать имя таблицы с данными.Мне нужно зациклить DataFrame с именем столбца таблицы.Есть ли лучший способ сделать это сначала с помощью сбора?

val tablename:Array[String] = df1.select("msgname").distinct().rdd.map(row=>row.getString(0).trim).collect

tablename.foreach{table =>
  //print(table)
  //val columns:Array[String] = df1.filter(s"msgname = '$table'").select("columns").distinct().rdd.map(row=>row.toString()).collect
  df1.filter(s"msgname = '$table'").select("record_data").write.saveAsTable(s"$table")
    //.toDF(columns:_*).show()
    //.toDF(columns:_*).show()
}

1 Ответ

0 голосов
/ 25 сентября 2019

2 идеи для повышения производительности: кешировать задания df1 и / или запускать параллельные искры, например, используя параллельные коллекции, например:

df1.cache()    
val tablename:Array[String] = df1.select(trim("msgname")).distinct().as[String].collect

tablename
.par // enable parallel execution
.foreach{table =>
     df1.filter(s"msgname ='$table'").select("record_data").write.saveAsTable(s"$table")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...