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

标签 python sql dataframe pyspark apache-spark-sql

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

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,但这使它变得复杂。我可以使用 sql 或 Pyspark sql python 组合。

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

最佳答案

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

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()

关于python - PySpark sql 比较每天的记录并报告差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52140278/

相关文章:

python - list.append() 不向列表添加任何值

python - STDOUT 中的子进程或 commands.getstatusoutput 并存储在变量中

python - 如何将 Fabric 与代理服务器一起使用?

python - 来自一组列的 Seaborn 热图?

python - 按pandas DataFrame中的选定行填充

python - Django 表格 : making a disabled field persist between validations

sql - 使用 psycopg2 在 UPDATE SET 语句中更新超过 1 个 db 列

MySql - 产品变体表(宽表) - 具有 NULL 的唯一值

python-3.x - 对于这种特殊情况,如何使用地理编码获得公司的正确位置? (Python、谷歌 API)

sql - 如何在Oracle中的字符串列中使用带有数字的条件