Jsem nová Jiskra, Scala, tak promiň, hloupá otázka. Tak jsem si počet tabulek:
table_a, table_b, ...
a číslo odpovídající typy těchto tabulek
případ třídy classA(...), v případě třídy classB(...), ...
Pak musím napsat metody, které čtou údaje z těchto tabulek a vytvořit dataset:
def getDataFromSource: Dataset[classA] = {
val df: DataFrame = spark.sql("SELECT * FROM table_a")
df.as[classA]
}
Stejné i u ostatních tabulek a typy. Existuje nějaký způsob, jak se vyhnout rutinní kód - myslím jednotlivých fucntion pro každou tabulku a získat tím, s? Například:
def getDataFromSource[T: Encoder](table_name: String): Dataset[T] = {
val df: DataFrame = spark.sql(s"SELECT * FROM $table_name")
df.as[T]
}
Pak vytvořit seznam dvojic (table_name, type_name):
val tableTypePairs = List(("table_a", classA), ("table_b", classB), ...)
Pak volat pomocí foreach:
tableTypePairs.foreach(tupl => getDataFromSource[what should I put here?](tupl._1))
Díky předem!