在Spark的Dataset<T>::map()函数中,我可以改变对象吗?

问题描述 投票:0回答:0

Spark 的

DataFrame
,或
Dataset<Row>
,假设
Row
是不可变的。我听说不变性是容错、并发和优化的基础。

但是对于自定义类

Dataset
A
,我可以在
Dataset<A>::map()
函数中改变对象吗?

示例代码:

@Data
public class A {
    private String x;
}

...

Dataset<A> ds = ...

ds.map((MapFunction<A, A>) row -> {
    row.setX("another value");
    return row;
}, Encoders.bean(A.class));

虽然突变有效,但我不确定是否总是安全或建议这样做。

java apache-spark immutability
© www.soinside.com 2019 - 2024. All rights reserved.