从火花流中另一列的不同行派生列值

时间:2018-06-27 14:46:14

标签: scala apache-spark spark-streaming

我触发了结构化的流,例如- 请注意,还有其他列,但我已减少到2列。

+---+---+
| A | B | 
+---+---+
| a | 1 | 
| b | 0 |
| c | 0 |
+---+---+

我想创建一个新列,如果X或Y为TRUE ELSE 0,则值将为1,其中X和Y的可能值为a,b或c。例如,如果我选择a和c,则数据框将像-

+---+---+---+
| A | B | C |
+---+---+---+
| a | 1 | 1 |
| b | 0 | 1 |
| c | 0 | 1 |
+---+---+---+

因为(a = 1或c = 0)= 1 同样,如果我选择b和c,那么C列中将为0。 我试过的是groupBy像Timestamp和B上的collect_list这样的列,然后检查收集列表中是否存在1。如果是,则C中为1。

在此之后,我尝试根据时间戳将其与原始流进行内部连接。但是俗话说-不支持两个流数据帧/数据集之间的内部联接。

有什么办法可以解决这个问题?

0 个答案:

没有答案