【发布时间】:2022-01-07 02:38:06
【问题描述】:
我想写一个函数如下:
原始数据:
| customer | product | revenue |
|---|---|---|
| Customer A | Product 1 | EUR 10 |
| Customer A | Product 2 | EUR 10 |
| Customer B | Product 1 | EUR 5 |
| Customer B | Product 2 | EUR 2 |
| Customer C | Product 1 | EUR 5 |
目标数据:
| customer | revenue | cumulative revenue |
|---|---|---|
| Customer A | EUR 20 | EUR 20 |
| Customer B | EUR 7 | EUR 27 |
| Customer C | EUR 5 | EUR 32 |
我确切地知道如何在 PySpark 中做到这一点,但不熟悉带有功能的打字稿,因为我想在前端触发“即时”计算。
这是 PySpark 代码:
from pyspark.sql import functions as F, window as W
window = W.Window.partitionBy(F.col("helper")).orderBy(F.col("net_revenue").desc())
df = ( df .groupby("customer") .agg( F.sum("net_revenue").alias("net_revenue") ) .withColumn('helper', F.lit(1)) .withColumn( "cumulative_revenue", F.sum("net_revenue").over(window) ) )
您能告诉我如何编写那段功能代码吗?
【问题讨论】:
-
嗨,很多来自 Palantir 的人经常回答这些问题,直到 EOY 才放假。如果在我们回来之前社区中没有人回答,那么我们会给你一个答案。避免关闭您的问题的一个好方法(我可以看到一个投票结束,因为“需要更多关注)是在 pyspark 中提供您希望在函数中看到的代码。
-
@fmsf:谢谢 - 这是来自 pyspark.sql 的 PySpark 代码 ''' 导入函数为 F,窗口为 W window = W.Window.partitionBy(F.col("helper")) .orderBy(F.col("net_revenue").desc()) df = ( df .groupby("customer") .agg( F.sum("net_revenue").alias("net_revenue") ) .withColumn(' helper', F.lit(1)) .withColumn( "cumulative_revenue", F.sum("net_revenue").over(window) ) ) '''
标签: typescript palantir-foundry