Sono nuovo in Scintilla, Scala, quindi vi chiedo scusa per la domanda stupida. Quindi ho un numero di tavole:
table_a, table_b, ...
e il numero di tipi corrispondenti per queste tabelle
caso di classe classA(...), case di classe classB(...), ...
Quindi ho bisogno di scrivere un metodi di leggere i dati di queste tabelle e creare set di dati:
def getDataFromSource: Dataset[classA] = {
val df: DataFrame = spark.sql("SELECT * FROM table_a")
df.as[classA]
}
Lo stesso per le altre tabelle e tipi. C'è un modo per evitare la routine di codice, parlo di singoli fucntion per ogni tabella e ottenere con uno? Per esempio:
def getDataFromSource[T: Encoder](table_name: String): Dataset[T] = {
val df: DataFrame = spark.sql(s"SELECT * FROM $table_name")
df.as[T]
}
Quindi creare una lista di coppie (table_name, nome_tipo):
val tableTypePairs = List(("table_a", classA), ("table_b", classB), ...)
Quindi per chiamare utilizzando foreach:
tableTypePairs.foreach(tupl => getDataFromSource[what should I put here?](tupl._1))
Grazie in anticipo!