我正在使用Java Spark构建数据提取框架(以从多个文件中提取数据)。我经常需要同时处理多个文件,并且想知道处理该方案的最佳方法是什么。
我将spark.dynamic.allocation.enabled设置为True,所以目前我正在为每个要处理的文件启动一个spark应用程序。
sparkSession = SparkSession.builder()
.config(sparkConf)
.enableHiveSupport()
.getOrCreate();
我在jar中使用上述行创建一个SparkSession。每次需要提取文件时,都会触发jar并创建一个新的Spark应用程序。
此方法是否有缺点-创建sparkcontexts / sparksessions是否会造成开销?我应该运行一个sparkSession并通过该sparkSession处理我的所有文件吗?