Я разрабатываю приложение Spark, и я использую Spring как платформу для внедрения зависимостей. Теперь я застрял в проблеме, что часть обработки использует @Autowired функциональность Spring, но она сериализована и десериализована Spark.
Таким образом, следующий код вызывает у меня проблемы:
Processor processor = ...; // This is a Spring constructed object
// and makes all the trouble
JavaRDD<Txn> rdd = ...; // some data for Spark
rdd.foreachPartition(processor);
Процессор выглядит следующим образом:
public class Processor implements VoidFunction<Iterator<Txn>>, Serializeable {
private static final long serialVersionUID = 1L;
@Autowired // This will not work if the object is deserialized
private transient DatabaseConnection db;
@Override
public void call(Iterator<Txn> txns) {
... // do some fance stuff
db.store(txns);
}
}
Итак, мой вопрос: возможно ли использовать что-то вроде Spring в сочетании с Spark? Если нет, то какой самый элегантный способ сделать что-то подобное? Любая помощь приветствуется!