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));
虽然突变有效,但我不确定是否总是安全或建议这样做。