pypsark:在行中取最小值或最大值?

时间:2018-05-29 22:22:10

标签: pyspark

我有以下数值;

- - - - - -
A|  B |  C|
- - - - - - 
1|  2 |  3|
2|  3 |  6|
3|  5 |  4|

我希望在B列和C列的行中取最小值。

这样

- - - - - -
A|  min(B,C)
- - - - - - 
1|  2
2|  3
3|  4

如何在pyspark数据框中执行此操作?

1 个答案:

答案 0 :(得分:1)

无论您想检查和研究什么,请参阅pyspark API文档。它将具有所有可能的功能和相关文档。在下面的示例中,我使用least mingreatest max

from pyspark.sql import functions as F 
df = sqlContext.createDataFrame([
    [1,3,2],
    [2,3,6],
    [3,5,4]
], ['A','B', 'C'])
df.withColumn(
    "max",
    F.greatest(*[F.col(cl) for cl in df.columns[1:]])
).withColumn(
    "min",
    F.least(*[F.col(cl) for cl in df.columns[1:]])
).show()

Pyspark API链接: - https://spark.apache.org/docs/1.6.2/api/python/pyspark.sql.html#pyspark.sql.DataFrame