Я пытаюсь выполнить условный взрыв в Spark Structured Streaming.
Например, мой потоковый фрейм данных выглядит следующим образом (здесь полностью собраны данные). Я хочу разбить массив сотрудников на отдельные строки массивов, когда contingent = 1
. Когда contingent = 0
, мне нужно оставить массив как есть.
|----------------|---------------------|------------------|
| Dept ID | Employees | Contingent |
|----------------|---------------------|------------------|
| 1 | ["John", "Jane"] | 1 |
|----------------|---------------------|------------------|
| 4 | ["Amy", "James"] | 0 |
|----------------|---------------------|------------------|
| 2 | ["David"] | 1 |
|----------------|---------------------|------------------|
Итак, мой вывод должен выглядеть так (мне не нужно отображать столбец contingent
:
|----------------|---------------------|
| Dept ID | Employees |
|----------------|---------------------|
| 1 | ["John"] |
|----------------|---------------------|
| 1 | ["Jane"] |
|----------------|---------------------|
| 4 | ["Amy", "James"] |
|----------------|---------------------|
| 2 | ["David"] |
|----------------|---------------------|
Есть пара проблем, с которыми я сейчас сталкиваюсь:
- Взрывание массивов условно
- взорвать массивы в массивы (в данном случае не в строки)
В Hive была концепция UDTF (пользовательские табличные функции), которая позволяла мне это делать. Интересно, есть ли что-нибудь сравнимое с ним?