У меня есть случай использования, где у меня есть конфигурация csv (может быть загружен в dataframe).Конфигурация: Ключ Тип столбец значенияkey1 Type1 a C1ключ1 тип1 b C1key2 Type2 c C2key3 Type3 d C3
Еще один очень большой набор данных со столбцами более 22 (превышает предел кортежа в Scala 2.0 Spark).
Мне нужно извлечь информацию из фрейма данных конфигурации о том, какие операции мне нужно выполнить с этим огромным набором данных.Например, если присоединен Type1, то мне нужно взять все значения key1 и type1 (a, b) в этом случае и объединиться со связанным столбцом (здесь C1) в огромном наборе данных и т. Д. Type2 - фильтр, тогда мне нужнофильтровать значение c в огромном наборе данных.Я хотел бы разработать наиболее оптимизированный способ продолжить это.
На выходе будет набор данных со строками огромного набора данных, который соответствует критериям, заданным в конфигах, но также и с добавленным ключом столбца, просто чтобы определить, какая строка в выходном наборе данных и из каких критериев приходит.
Вопрос здесь заключается в том, могу ли я обработать эту параллель?
как в первом варианте: - 1. загрузить набор данных 2. загрузить конфигурацию во фрейм данных => Tuple (key, Row) => Reduce By Key =>написать пользовательскую функцию, которая извлекает тип данного ключа, а затем выполняет операцию с ранее загруженным набором данных.(используя некоторые кейсы типа: type == join / filter и т. д.)
Как мне это сделать?Это оптимальный способ сделать это?Делать это параллельно можно или нет?