我试图对PySpark(2.4)数据帧进行分组和求和,但不能一个一个地获取值。在
我有以下数据帧:
data.groupBy("card_scheme", "failed").count().show()
+----------------+------+------+
| card_Scheme|failed| count|
+----------------+------+------+
| jcb| false| 4|
|american express| false| 22084|
| AMEX| false| 4|
| mastercard| true| 1122|
| visa| true| 1975|
| visa| false|126372|
| CB| false| 6|
| discover| false| 2219|
| maestro| false| 2|
| VISA| false| 13|
| mastercard| false| 40856|
| MASTERCARD| false| 9|
+----------------+------+------+
我试图为每个card_方案计算公式X = false / (false + true)
,但最终还是得到了一个数据帧。在
我期待的是:
^{pr2}$
创建数据集
方法1:这种方法会比较慢,因为它涉及到通过
^{pr2}$pivot
的传输。在{你可以使用方法。这会快得多。在
首先将根数据帧拆分为两个数据帧:
然后进行完全外部连接,我们可以得到最终结果:
^{pr2}$不需要做
groupby
,只需要额外的两个数据帧和连接。在data.groupBy("card_scheme").pivot("failed").agg(count("card_scheme"))
应该可以。我不确定agg(count(any_column))
,但线索是pivot
函数。结果您将得到两个新列:false
和{x = false / (false + true)
。在相关问题 更多 >
编程相关推荐