У меня есть большой массив данных PySpark со следующей структурой, где k_ * - ключи, а другие столбцы - столбцы данных (числа):
k_a k_b k_c d e
a 1 x 4 7
a 1 x 5 8
b 3 x 6 9
...
Что я хочу сделать состоит в том, чтобы сделать некоторые вычисления, основанные на срезах, которые должны быть выполнены с использованием специального c пользовательского UDF. Однако эта функция должна получать «слайсы», где слайсы определяются уникальными комбинациями клавиш:
(k_a=1; k_b=1; k_c=x:)
d e
---
4 7
5 8
------------------
(k_a=b; k_b=3; k_c=x:)
d e
---
6 9
Кроме того, этот UDF создает список значений (строка), поэтому целью является создать новый фрейм данных, применяя UDF ко всем слайсам. Мой первый подход состоял в том, чтобы передать в UDF только существующие уникальные комбинации клавиш, а затем отфильтровать кадр данных внутри UDF, однако кадр данных слишком велик, чтобы его можно было транслировать, поэтому я не могу следовать этому подходу. Есть ли у вас какие-либо идеи о том, как сделать это, используя распределенные вычислительные возможности PySpark?