PySpark sql сравнивает записи на каждый день и сообщает о различиях - PullRequest
0 голосов
/ 02 сентября 2018

поэтому у меня проблема в том, что у меня есть этот набор данных:

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

но я не знаю, как сравнить записи за каждый день с другим днем ​​и экспортировать запись о несуществовании на следующий день в другую таблицу. Я устал над разделом Cluase, но это делает его сложным. Я могу использовать комбинацию sql или Pyspark sql python.

Не могли бы вы дать мне, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 02 сентября 2018

Ниже приведена операция с фреймом данных для вашего вопроса, который вам может понадобиться немного подправить, так как у меня нет примеров данных для него, напишите код, увидев ваши данные, пожалуйста, дайте мне знать, если это решит вашу проблему:

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