В искровом наборе данных s можно передать в качестве входных аргументов функции, чтобы получить положенные аргументы функции? - PullRequest
0 голосов
/ 11 июля 2019

Я новичок в 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-вызов по ссылке на объекты не работают здесьКак справиться с этим?

Можем ли мы вернуть несколько наборов данных из функции, если да, то как это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...