Spark'ta yeniyim Scala, aptalca soru için özür dilerim. Bu yüzden bir dizi masam var:
tablo_a, tablo_b, ...
ve bu tablolar için karşılık gelen tür sayısı
vaka sınıfı classA(...), vaka sınıfı classB(...), ...
Sonra bu tablolardan veri okuyan ve veri kümesi oluşturan bir yöntem yazmam gerekiyor:
def getDataFromSource: Dataset[classA] = {
val df: DataFrame = spark.sql("SELECT * FROM table_a")
df.as[classA]
}
Diğer tablolar ve türleri aynı. Rutin koddan kaçınmanın bir yolu var mı-her tablo için ayrı ayrı fucntion demek ve bir tane almak mı? Örneğin:
def getDataFromSource[T: Encoder](table_name: String): Dataset[T] = {
val df: DataFrame = spark.sql(s"SELECT * FROM $table_name")
df.as[T]
}
Ardından çiftlerin listesini oluşturun (tablo_adı, tür_adı):
val tableTypePairs = List(("table_a", classA), ("table_b", classB), ...)
Sonra foreach kullanarak çağırmak için:
tableTypePairs.foreach(tupl => getDataFromSource[what should I put here?](tupl._1))
Şimdiden teşekkürler!