Eu sou novo no Spark, Scala, então, desculpe pela pergunta estúpida. Então, eu tenho um número de mesas:
table_a, table_b, ...
e o número de correspondentes para estes tipos de tabelas
caso a classe classA(...), caso a classe classB(...), ...
Então, eu preciso escrever um métodos de leitura de dados a partir destas tabelas e criar o conjunto de dados:
def getDataFromSource: Dataset[classA] = {
val df: DataFrame = spark.sql("SELECT * FROM table_a")
df.as[classA]
}
O mesmo para outras tabelas e tipos. Existe alguma maneira de evitar a rotina de código - quero dizer, o indivíduo função para cada tabela e ficar com um? Por exemplo:
def getDataFromSource[T: Encoder](table_name: String): Dataset[T] = {
val df: DataFrame = spark.sql(s"SELECT * FROM $table_name")
df.as[T]
}
Em seguida, criar uma lista de pares (table_name, type_name):
val tableTypePairs = List(("table_a", classA), ("table_b", classB), ...)
Em seguida, chamá-lo usando o foreach:
tableTypePairs.foreach(tupl => getDataFromSource[what should I put here?](tupl._1))
Obrigado antecipadamente!