Я новичок в Spark, в нашем проекте мы используем потоковую структуру со искрой для написания кафки потребителем.У нас есть сценарий использования, когда мне нужно модульный код, чтобы несколько человек могли одновременно работать над разными частями работы.
На первом шаге мы читаем разные темы о Кафке, теперь у меня есть два набора данных.Скажем, ds_input1 и ds_input2.
Мне нужно передать их на следующий шаг, где работает другой человек.Итак, я сделал, как показано ниже в java8
DriverClass{
Dataset<Row> ds_input1 = //populate it from kafka topic
Dataset<Row> ds_output1 = null;
SecondPersonClass.process(ds_input1 , ds_output1 );
//here outside I get ds_output1 as null
//Why it is not working as List<Objects> in java ?
//Is there anything wrong I am doing ? what is the correct way to do?
Dataset<Row> ds_output2 = null;
ThirdPersonClass.process(ds_output1 , ds_output2);
//here outside I get ds_output2 as null
//though ds_output2 populated inside function why it is still null outside?
}
SecondPersonClass{
static void process(ds_input1 , ds_output1 ){
//here have business logic to work on ds_input1 data.
//then i will update and assign it back to out put dataSets
//i.e. ds_output1
//for simplicity lets says as below
ds_output1 = ds_input1 ;
//here I see data in ds_output1 i.e ds_output1 is not null
}
}
ThirdPersonClass{
static void process2(ds_input2 , ds_output2 ){
//here have business logic to work on ds_input2 data.
// then i will update and assign it back to out put dataSets
//i.e. ds_output2
//for simplicity lets says as below
ds_output2 = ds_input2 ;
//here I see data in ds_output2 i.e ds_output2 is not null
}
}
Вопрос: Несмотря на то, что набор данных заполнен внутри статического метода функции, почему они не отражаются вне функции и по-прежнему равны нулю?Почему Java-вызов по ссылке на объекты не работают здесьКак справиться с этим?
Можем ли мы вернуть несколько наборов данных из функции, если да, то как это сделать?