相关疑难解决方法(0)

将通过 FOR 循环函数输出的多个数据帧合并为一个数据帧

我有一个 FOR 循环函数,它迭代表和列的列表 (zip) 以获取最小值和最大值。每个组合的输出都是分开的,而不是单个数据帧/表。有没有一种方法可以将 FOR 循环的结果合并到函数内的一个最终输出中?

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()
Run Code Online (Sandbox Code Playgroud)
tables = ["sales_123", "sales_REW"]
cols = ["costs", "price"]

minmax(tables, cols)
Run Code Online (Sandbox Code Playgroud)

函数的输出:

+---------+-----+---+---+
|    table|  col|min|max|
+---------+-----+---+---+
|sales_123|costs|  0|400|
+---------+-----+---+---+

+----------+-----+---+---+
|     table|  col|min|max|
+----------+-----+---+---+
|sales_REW |price|  0|400|
+----------+-----+---+---+
Run Code Online (Sandbox Code Playgroud)

期望的输出:

+---------+-----+---+---+
|    table|  col|min|max|
+---------+-----+---+---+
|sales_123|costs|  0|400|
|sales_REW|price|  0|400|
+---------+-----+---+---+
Run Code Online (Sandbox Code Playgroud)

python python-3.x apache-spark apache-spark-sql pyspark

2
推荐指数
1
解决办法
5652
查看次数

如何将 Spark 数据框中的所有列更改为双精度类型

我正在尝试将 Spark 数据帧的所有列更改为双精度类型,但我想知道是否有比循环列和转换更好的方法。

python dataframe apache-spark pyspark

1
推荐指数
1
解决办法
8850
查看次数