Я не уверен в истинной причине, единственное, что бросилось в глаза, это следующее выражение SQL: (SELECT * FROM BM_VALS WHERE ROWNUM <= 10) T
- что означает T
здесь?
Что касается общего дизайна, я быРекомендую совершенно другой подход.В вашем случае у вас есть 2 процессора, которые работают с одинаковыми данными, собранными из Oracle, и каждый процессор извлекает данные отдельно.Я бы порекомендовал перенести чтение данных Oracle в отдельную процедуру, которая будет возвращать фрейм данных (вам нужно его кешировать), и тогда ваши процессоры будут работать с этим фреймом данных и сохранять данные в Cassandra.
Или каккак было рекомендовано ранее, вы можете разделить задание на 2 части - одну, которая извлекает все данные из Oracle, и сохраняет кадр данных на диск (не persist
, а используя write
), например, в виде файла Parquet.А затем отдельное задание (я), которое будет принимать данные с диска и выполнять необходимые преобразования.
В обоих сценариях вы