PySpark sql每天比较记录并报告差异

问题描述 投票:1回答:1

所以我遇到的问题是我有这个数据集:

enter image description here

它表明企业在特定时期开展业务。我想要实现的是报告在哪一天添加了哪些商家。也许我正在寻找一些答案:

enter image description here

我设法使用这个sql来提升所有记录:

select [Date]
,Mnemonic
,securityDesc
,sum(cast(TradedVolume as money)) as TradedVolumSum
FROM SomeTable
group by [Date],Mnemonic,securityDesc

但我不知道如何比较每天的记录和另一天,并将第二天的非存在记录导出到另一个表。我厌倦了sql over partition cluase,但它让它变得复杂。我可以使用sql或Pyspark sql python组合。

你能告诉我如何解决这个问题吗?

python sql dataframe pyspark pyspark-sql
1个回答
1
投票

下面是您可能需要稍微调整一下的问题的数据框操作,因为我没有它的示例数据,通过查看您的数据编写代码,如果这解决了您的问题,请告诉我:

import pyspark.sql.functions as F
from pyspark.sql import Window

some_win = Window.partitionBy("securityDesc").orderBy(F.col("[date]").asc())
some_table.withColumn(
    "buisness_added_day",
    F.first(F.col("id")).over(some_win)
).select(
    "buisness_added_day",
    "securityDesc",
    "TradedVolumSum",
    "Mnemonic"
).distinct().orderBy("buisness_added_day").show()
© www.soinside.com 2019 - 2024. All rights reserved.