我有一个包含多列的数据集。需要调用一个函数以使用一行中可用的数据来计算结果。因此,我将案例类与方法结合使用,并使用该案例创建了数据集。例如,
case class testCase(x: Double, a1: Array[Double], a2: Array[Double]) {
var someInt = 0
def myMethod1(): Unit = {...} // use x, a1 and a2
def myMethod2(): Unit = {...} // use x, a1 and a2
def result(): { return someInt }
从main()
称为
val res = myDS.map(_.result()).toDF("result")
我面临的问题是,无论我如何调用,代码都可以正常工作,与程序的其他部分不同,以上语句不能同时工作。不论执行者,内核和repartition
ing的数量如何,一种方法的一个实例似乎都只能工作!
任何暗示我应该看的东西都会受到赞赏。
testCase案例类不应是可变的,因此,如果您同时修改对象的状态,则程序将是不确定的。您所提供的一些信息看起来有什么问题是此代码段
var someInt = 0
该值可能正在由多个任务同时修改,我很确定您不希望这样做。
您能解释一下您想做什么吗?