Som nová v Iskra, Scala, takže ospravedlňujem sa za hlúpu otázku. Tak som si niekoľko tabuliek:
table_a, table_b, ...
a počet zodpovedajúcich typov týchto tabuliek
prípade triedy classA(...), prípad triedy classB(...), ...
Potom som potrebu napísať metódy, ktoré čítať údaje z týchto tabuliek a vytvoriť dataset:
def getDataFromSource: Dataset[classA] = {
val df: DataFrame = spark.sql("SELECT * FROM table_a")
df.as[classA]
}
Rovnaké pre iné tabuľky a typov. Existuje nejaký spôsob, ako sa vyhnúť rutinné kód - mám na mysli jednotlivé fucntion pre každú tabuľku, a získať tým, že s jedným? Napríklad:
def getDataFromSource[T: Encoder](table_name: String): Dataset[T] = {
val df: DataFrame = spark.sql(s"SELECT * FROM $table_name")
df.as[T]
}
Potom vytvorte zoznam párov (table_name, type_name):
val tableTypePairs = List(("table_a", classA), ("table_b", classB), ...)
Potom hovor pomocou foreach:
tableTypePairs.foreach(tupl => getDataFromSource[what should I put here?](tupl._1))
Vďaka vopred!