PySpark : как написать логику вычислений

#pyspark #apache-spark-sql

Вопрос:

Я новичок в PySpark и пытаюсь понять, как выполнить следующие вычисления. У меня есть два фрейма данных со следующей схемой

df1 :

 root
 |-- story_id: string (nullable = true)
 |-- uri: string (nullable = true)
 

df2 :

 root
 |-- uri: string (nullable = true)
 

Вот примеры данных из обоих

df1 :

 |story_id                          |uri                                                                                                            |
 ---------------------------------- --------------------------------------------------------------------------------------------------------------- 
|0x5883d731edac1ca0d115c1ef05fb45e3|https://www.tellychakkar.com/tv/udaariyaan-5th-august-2021-written-episode-update-jasmin-fails-gippy-s-plan    |
|0x5883d731edac1ca0d115c1ef05fb45e3|https://www.iwmbuzz.com/television/spoilers/udaariyaan-spoiler-alert-omg-jasmine-foils-gippys-plan/2021/08/05  |
|0x5883d731edac1ca0d115c1ef05fb45e3|https://getindianews.com/udaariyaan-5th-august-2021-written-episode-update-gurpreet-gives-the-necklace-to-tejo/|
 ---------------------------------- --------------------------------------------------------------------------------------------------------------- 
 

df2

  ---------------------------------------------------------------------------------- 
|uri                                                                               |
 ---------------------------------------------------------------------------------- 
|https://www.sportsmole.co.uk/people/felipe-mora/                                  |
|https://www.dailyrecord.co.uk/lifestyle/money/lidls-99-12ft-swimming-pool-24696162|
|https://heavy.com/sports/detroit-lions/dan-campbell-calvin-johnson-praise/        |
 ---------------------------------------------------------------------------------- 
 

По сути, df1 содержит несколько URL-адресов для данного идентификатора истории, и в df1 есть несколько идентификаторов истории.

df2 содержит набор основных URL-адресов.

Задача состоит в том, чтобы выяснить, сколько URL-адресов из каждого идентификатора истории в df1 присутствует в наборе основных URL-адресов df2

Так что для ввода, такого как :

df1

 s1, url1
s1, url2
s1, url3
s2, url2
s2, url4
 

df2

 url1
url3
url4
 

Результат должен быть

 s1, 2
s2, 1
 

Не могли бы вы, пожалуйста, дать мне представление о том, как следует выполнять эти вычисления. Ценю ваши предложения. Заранее спасибо!

Комментарии:

1. вы пробовали объединить оба фрейма данных и сгруппировать их по story_id?