Soy nuevo en la Chispa de la Scala, así que lo siento por la pregunta estúpida. Así que tengo un número de mesas:
table_a, table_b, ...
y el número de tipos correspondientes de estas tablas
el caso de la clase classA(...), el caso de la clase classB(...), ...
Entonces tengo que escribir un método que leer los datos de estas tablas y crear conjunto de datos:
def getDataFromSource: Dataset[classA] = {
val df: DataFrame = spark.sql("SELECT * FROM table_a")
df.as[classA]
}
Lo mismo para el resto de tablas y tipos. ¿Hay alguna forma de evitar que la rutina de código - me refiero a la función individual para cada tabla y conseguir uno? Por ejemplo:
def getDataFromSource[T: Encoder](table_name: String): Dataset[T] = {
val df: DataFrame = spark.sql(s"SELECT * FROM $table_name")
df.as[T]
}
A continuación, crear una lista de pares (table_name, nombre_tipo):
val tableTypePairs = List(("table_a", classA), ("table_b", classB), ...)
Luego llamarlo usando foreach:
tableTypePairs.foreach(tupl => getDataFromSource[what should I put here?](tupl._1))
Gracias de antemano!