всем привет!
а никто не сталкивался с такой задачей
есть mapPartitions
которая выполняется для допустим 100 партиций
и некоторые партиции выполняются слишком долго
хотелось бы поставить таймаут допустим 30 секунд
если выполняется дольше то просто делается return из этого mapPartitions
и ничего не
возвращается
возвращаем только из тех партиций которые успели расчитаться в 30 секунд
как идея - можно создавать внутри mapPartitions sub-тред и средствами питона ограничивать время его выполнения / убивать его сигналом или еще как то
возможно ли такое сделать в спарке?
Советую рискнуть и воспользоваться spark.sql.broadcastTimeout, но совершенно не факт, что сработает
Ну, или передавать в mapPartitions функцию, которая уже получила нужный дюрейшен (Duration) и сама остановит итерации по своему таймауту. В скале делается относительно легко, в пайтоне ничего не порекомендую