У меня есть следующие 2 таблицы и желаемый результат в следующем виде:
1) Таблица с периодами, где у меня есть пара элементов (все комбинации элементов в течение периода) (таблица_1)
period_id start_date end_date item_1 item_2
1 01-01 01-07 A B
1 01-01 01-07 A C
1 01-01 01-07 B C
2 02-01 02-07 D E
2 02-01 02-07 D F
2 02-01 02-07 E F
. . . . .
. . . . .
. . . . .
n mm-dd mm-dd X Y
2) Таблица с датой транзакции, транзакцией товара и идентификатором корзины (table_2)
basket_id date_id item_id
1 01-03 A
1 01-03 B
2 01-04 C
2 01-04 G
2 01-04 P
2 01-04 A
3 02-02 D
3 02-02 E
3 02-02 I
4 02-05 D
4 02-05 E
4 02-05 F
4 02-05 M
. . .
. . .
. . .
n mm-dd X
Я бы хотел посчитать за период корзины, когда пара товаров находилась в одной корзине Из вышеперечисленных фиктивных данных, каков должен быть результат:
period_id start_date end_date item_1 item_2 common_baskets
1 01-01 01-07 A B 1
1 01-01 01-07 A C 2
1 01-01 01-07 B C 0
2 02-01 02-07 D E 2
2 02-01 02-07 D F 1
2 02-01 02-07 E F 1
. . . . . .
. . . . . .
. . . . . .
n mm-dd mm-dd X Y N
table_1 содержит ~ 1 миллион строк, table_2 ~ 1 миллиард хранится в Had oop, поэтому невозможно l oop поверх содержимого.
Я могу запрашивать с помощью PySpark, но сначала было бы неплохо найти логи c, которые могут решить эту проблему без циклов, мне не обязательно нужен кусок кода, скорее мыслительный процесс, следовательно Я застрял.