【发布时间】:2017-09-26 14:28:21
【问题描述】:
假设我有一个数据框:
+----+----+---+
| c1|name|qty|
+----+----+---+
|abc1| a| 1|
|abc2| a| 0|
|abc3| b| 3|
|abc4| b| 2|
+----+----+---+
我只想为每个 name 获取具有最少 qty 的行:
+----+----+---+
| c1|name|qty|
+----+----+---+
|abc2| a| 0|
|abc4| b| 2|
+----+----+---+
我就是这样做的:
df1 = df.groupBy('name').agg(sf.min('qty')).select("min(qty)")
df2 = df1.join(df, df1["min(qty)"] == df["qty"]).drop("min(qty)") // df2 is the result
它正在工作。我想知道它是否可以改进。您如何改进上述解决方案?
【问题讨论】:
-
Code Review 让工作代码更好
标签: python apache-spark pyspark