Spark DataFrame - 获取两个列组合的平均值

时间:2017-12-07 19:28:47

标签: python apache-spark pyspark

我如何得到每列2列的平均价格?

我的DataFrame:

relevantTable = df.select(df['Price'], df['B'], df['A'])

看起来像:

+-------+------------+------------------+
|  Price|     B      |          A       |
+-------+------------+------------------+
| 0.2947|   i3.xlarge|                 x|
|  0.105|    c4.large|                 x|
| 0.2179|   m4.xlarge|                 x|
| 2.2534| m4.10xlarge|                 x|
| 2.1801| m4.10xlarge|                 x|
|  0.108|    r4.large|                 x|
|  0.108|    r4.large|                 x|
| 0.0213|    i3.large|                 y|
| 0.5572|  i2.4xlarge|                 y|
| 0.1542|  c4.4xlarge|                 y|
| 0.3624| m4.10xlarge|                 y|
| 0.3596| m4.10xlarge|                 y|
|   0.11|    m4.large|                 x|
| 0.4436|  m4.2xlarge|                 x|
| 0.1458|  m4.2xlarge|                 y|

... and so on real huge set

什么是简单且可扩展的解决方案,以获得 A B 的所有组合的平均值?

1 个答案:

答案 0 :(得分:2)

怎么样:

df.groupBy("A", "B").avg("Price")

或者如果您想通过单列包含聚合:

df.cube("A", "B").avg("Price")