相关疑难解决方法(0)

结构的Spark(Scala)过滤器数组不爆炸

我有一个带键的数据框和一个在数据框列中包含结构数组的列。每行包含一列,看起来像这样:

[
    {"id" : 1, "someProperty" : "xxx", "someOtherProperty" : "1", "propertyToFilterOn" : 1},
    {"id" : 2, "someProperty" : "yyy", "someOtherProperty" : "223", "propertyToFilterOn" : 0},
    {"id" : 3, "someProperty" : "zzz", "someOtherProperty" : "345", "propertyToFilterOn" : 1}
]
Run Code Online (Sandbox Code Playgroud)

现在,我想做两件事:

  1. 过滤“ propertyToFilterOn” = 1
  2. 在其他属性上应用一些逻辑-例如串联

这样的结果是:

[
{"id" : 1, "newProperty" : "xxx_1"},
{"id" : 3, "newProperty" : "zzz_345"}
]
Run Code Online (Sandbox Code Playgroud)

我知道如何使用爆炸来实现,但是爆炸在将其放回原处时还需要在键上使用groupBy。但是由于这是一个流数据帧,因此我还必须在它上面加一个水印,这是我想避免的。

还有其他方法可以实现而不使用爆炸吗?我敢肯定,有一些Scala魔术可以实现这一目标!

谢谢!

scala apache-spark

5
推荐指数
1
解决办法
696
查看次数

标签 统计

apache-spark ×1

scala ×1