在spark群集环境中运行并行作业时,spark数据集错误

时间:2018-06-14 09:18:11

标签: java apache-spark apache-spark-sql spark-streaming

我正在使用以下设置

SparkConf conf = new SparkConf().setAppName("Network Utilization Data")
                                .setMaster ("spark://10.126.228.139:7077")
                                .set("spark.submit.deployMode","cluster")
                                .set("spark.executor.instances","8")
                                .set("spark.executor.cores","4")
                                .set("spark.executor.memory","5120M")
                                .set("spark.driver.memory","5120M")
                                .set("spark.driver.memoryOverhead","10000M")
                                .set("spark.scheduler.mode", "FAIR")
                                .set("spark.cores.max", "4");        

我可以在spark集群环境中运行并行作业。但是每个作业的数据集结果都给出了错误的结果。如果我运行单个作业,数据集结果是正确的。

每个作业都在执行不同的逻辑和不同的数据源。

可能是什么问题?

如果我在下面运行单个作业,则是数据集结果。

Single Job Dataset result

如果我运行并行作业,数据集结果如下。额外值来自其他作业数据集值。

parallel dataset result

1 个答案:

答案 0 :(得分:0)

我们需要小心数据集编写器。我的两个应用程序正在写入rf_table数据集。

ran_rf_dataset.write()模式(SaveMode.Append).saveAsTable(" rf_table&#34)。

这就是混合数据的原因。

现在我为每个要编写的应用程序分配了不同的数据集。那么数据还可以。