ฉันมีฟังก์ชัน FOR loop ที่วนซ้ำรายการตารางและคอลัมน์ (zip) เพื่อรับค่าต่ำสุดและสูงสุด เอาต์พุตจะถูกแยกออกจากกันสำหรับแต่ละชุดค่าผสม แทนที่จะเป็นหนึ่งดาต้าเฟรม/ตารางเดียว มีวิธีรวมผลลัพธ์ของ FOR loop ให้เป็นเอาต์พุตสุดท้ายภายในฟังก์ชันหรือไม่?
from pyspark.sql import functions as f
def minmax(tables, cols):
for table, column in zip(tables, cols):
minmax = spark.table(table).where(col(column).isNotNull()).select(f.lit(table).alias("table"), f.lit(column).alias("col"), min(col(column)).alias("min"),
max(col(column)).alias("max"))
minmax.show()
tables = ["sales_123", "sales_REW"]
cols = ["costs", "price"]
minmax(tables, cols)
เอาท์พุตจากฟังก์ชัน:
+---------+-----+---+---+
| table| col|min|max|
+---------+-----+---+---+
|sales_123|costs| 0|400|
+---------+-----+---+---+
+----------+-----+---+---+
| table| col|min|max|
+----------+-----+---+---+
|sales_REW |price| 0|400|
+----------+-----+---+---+
ผลลัพธ์ที่ต้องการ:
+---------+-----+---+---+
| table| col|min|max|
+---------+-----+---+---+
|sales_123|costs| 0|400|
|sales_REW|price| 0|400|
+---------+-----+---+---+