spark:我的数据集在应用foreach之后没有更新

gwo2fgha  于 2021-05-18  发布在  Spark
关注(0)|答案(1)|浏览(384)

我有这样一个数据集: Dataset<MyModel> ds ,和 MyModel 有一个领域 name (还有更多的领域)。
我试着这样做:

ds.foreach(r -> {
  r.setName("name");
});
return ds;

但我发现那是在 ds ,的 name 字段未更新。
我想知道我该怎么做才能让 ds 更新了吗?

btxsgosb

btxsgosb1#

不能更改数据集,只能创建一个新数据集
因此,您需要对数据集应用一个Map,更改字段,从而生成一个新的数据集
如果mymodel是一个case类,您将执行以下操作:
ds.map(x=>x.copy(myfield=“new value”))
作为一个类示例,我建议在Map中创建对象的副本,修改字段并返回副本。

相关问题