У меня искровой структурированный поток, как -
Обратите внимание, что есть и другие столбцы, но я уменьшил до 2 столбцов.
+---+---+
| A | B |
+---+---+
| a | 1 |
| b | 0 |
| c | 0 |
+---+---+
Я хочу создать новый столбец, значение которого будет равно 1, если X ИЛИ ИСТИННО, В противном случае 0, где возможные значения 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 и collect_list на B, а затем проверьте, присутствует ли 1 в собранном списке. Если да, то будет 1 в C.
После этого я попытался соединить его с исходным потоком обратно на основе метки времени. Но его высказывание - внутреннее объединение двух потоковых DataFrames / Datasets не поддерживается.
Можно ли как-нибудь решить эту проблему?