Jestem nowy w Spark, Scala, więc przepraszam za głupie pytanie. Tak więc, mam kilka tabel:
table_a, table_b, ...
i liczba poszczególnych typów dla tych tabel
klasa sprawy ClassA(...), klasa sprawy klasa b(...), ...
Następnie trzeba napisać metody, które odczytują dane z tych tabel i tworzą zbiór danych:
def getDataFromSource: Dataset[classA] = {
val df: DataFrame = spark.sql("SELECT * FROM table_a")
df.as[classA]
}
To samo odnosi się do innych tabel i typów. Czy jest jakiś sposób, aby uniknąć rutynowego kodu-mam na myśli indywidualną pracę dla każdej tabeli i zrobić jeden? Na przykład:
def getDataFromSource[T: Encoder](table_name: String): Dataset[T] = {
val df: DataFrame = spark.sql(s"SELECT * FROM $table_name")
df.as[T]
}
Następnie utwórz listę par (nazwa tabeli nazwa typu):
val tableTypePairs = List(("table_a", classA), ("table_b", classB), ...)
Następnie wywołać go za pomocą foreach:
tableTypePairs.foreach(tupl => getDataFromSource[what should I put here?](tupl._1))
Z góry dziękuję!