J'utilise Spark DataFrameReader pour effectuer une requête sql depuis la base de données. Pour chaque requête effectuée, la session Spark est requise. Ce que je voudrais faire est: pour chacun des JavaPairRDDs exécuter map, qui invoquerait sql query avec les paramètres de ce RDD. Cela signifie que je dois passer SparkSession dans chaque lambda, ce qui semble être un mauvais design. Quelle est l'approche commune dans de tels problèmes?Apache Spark distributed sql
Il pourrait ressembler à:
roots.map(r -> DBLoader.getData(sparkSession, r._1));
Comment je charge les données maintenant:
JavaRDD<Row> javaRDD = sparkSession.read().format("jdbc")
.options(options)
.load()
.javaRDD();
roots.map (r -> DBLoader.getData (sparkSession, r._1)); n'est pas la bonne approche. en général, vous n'aurez pas besoin de passer la session en lambda. – BDR