Я использую spark- sql -2.4.1v с Java 8. У меня есть вариант использования, как показано ниже,
Dataset<Row> ds = //a Dataset<Row> read from DB
Мне нужно изменить, чтобы сделать некоторые манипуляции на основе записей другого набора данных, т.е.
List<String> codesList = Array.asList("code1","code2")
Dataset<Row> codes = sc.createDataSet(codesList , Encoders.bean(String.class))
Мне нужно обрабатывать весь код параллельно. Чтобы сделать то же самое, я пытаюсь, как показано ниже:
Dataset<Row> ds_res = codes.map( x_cod -> //map throwing an error
calcFunction(sparkSession, filePath, ds ,x_cod );
}).reduce(new Function2<Dataset<Row> df1,Dataset<Row> df2) => df1.union(df2))
ds_res .write().path(filePath).mode("append").save();
public static Dataset<Row> calcFunction(sparkSession, filePath, ds ,x_cod ){
//some complex calculation based on x_cod
return ds_res ; // return ds_res for further processing
}
Как заставить это работать параллельно на кластере?