Я новичок в Spark, Scala, так что извините за глупый вопрос. Итак, у меня есть несколько таблиц:
table_a, table_b, ...
и количество соответствующих типов для этих таблиц
класс дела ClassA(...), класс дела ClassB(...), ...
Затем мне нужно написать методы, которые считывают данные из этих таблиц и создают набор данных:
def getDataFromSource: Dataset[classA] = {
val df: DataFrame = spark.sql("SELECT * FROM table_a")
df.as[classA]
}
То же самое относится и к другим таблицам и типам. Есть ли какой - нибудь способ избежать рутинного кода-я имею в виду индивидуальную работу для каждой таблицы и обойтись одним? Например:
def getDataFromSource[T: Encoder](table_name: String): Dataset[T] = {
val df: DataFrame = spark.sql(s"SELECT * FROM $table_name")
df.as[T]
}
Затем создайте список пар (имя таблицы, имя типа):
val tableTypePairs = List(("table_a", classA), ("table_b", classB), ...)
Затем вызвать его с помощью foreach:
tableTypePairs.foreach(tupl => getDataFromSource[what should I put here?](tupl._1))
Заранее спасибо!