ฉันยังใหม่อยู่ในออลสปาร์ค,Language ดังนั้นขอโทษสำหรับคำถามที่โง่มาก ดังนั้นฉันต้องเป็นจำนวนของตารางข้อมูลเรียบร้อยแล้ว:
table_a,table_b,...
และจำนวนของที่สัมพันธ์กันกัประเภทสำหรับพวกตารางข้อมูลเรียบร้อยแล้ว
ดีชั้นเรียน classA(...)คดีชั้นเรียน classB(...),...
งั้นฉันต้องการจะเขียนเป็นวิธีการของมันอ่านข้อมูลจากพวกนี้ใช้เวลาออกจากกองทัพเรือและสร้างวันที่:
def getDataFromSource: Dataset[classA] = {
val df: DataFrame = spark.sql("SELECT * FROM table_a")
df.as[classA]
}
แบบเดียวกันกับอีตารางข้อมูลเรียบร้อยแล้วและประเภท. มันมีทางที่จะหลีกเลี่ยงประจำวันรหัส-ฉันหมายถึงบุคคลหนึ่ง fucntion สำหรับแต่ละโต๊ะและได้อยู่กับใคร? สำหรับตัวอย่าง:
def getDataFromSource[T: Encoder](table_name: String): Dataset[T] = {
val df: DataFrame = spark.sql(s"SELECT * FROM $table_name")
df.as[T]
}
งั้นสร้างรายการของคู่ไปก่อน(table_name,type_name):
val tableTypePairs = List(("table_a", classA), ("table_b", classB), ...)
งั้นเรียกมันใช้ foreach:
tableTypePairs.foreach(tupl => getDataFromSource[what should I put here?](tupl._1))
ขอบคุณล่วงหน้า!