Я хочу преобразовать приведенный ниже запрос во фрейм данных с искрой (я новичок в спарке):
- Создание номера группы
select distinct *, DENSE_RANK() OVER(ORDER BY person_id, trust_id) AS group_number;
- Это то, что я получилось до сих пор для выше
df = self.spark.sql("select person_id, trust_id, insurance_id, amount, time_of_app, place_of_app from {}".format(self.tables['people']))
df = df.withColumn("group_number", dense_rank().over(Window.partitionBy("person_id", "trust_id").OrderBy("person_id", "trust_id")))
- другой запрос 1
where group_number in (select group_number from etl_table_people where code like 'H%') group by group_number having count(distinct amount) > 1;
- другой запрос 2
where insurance_id = 'V94.12'
group by group_number having count(distinct amount) = 2;