Код: Выделить всё
root
|-- channelGrouping: string (nullable = false)
|-- clientId: string (nullable = false)
|-- customDimensions: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- index: long (nullable = true)
| | |-- value: string (nullable = true)
Пример ввода
Код: Выделить всё
+--------+---------------+--------------------------+
|clientId|channelGrouping| customDimensions |
+--------+---------------+--------------------------+
| 123 | alpha | [[1, a], [2, b] |
| 456 | beta | [[1, a], [2, b], [3, c] |
| 789 | gama | [[1, a], [2, a], [3, c] |
+--------+---------------+--------------------------+
Код: Выделить всё
+--------+---------------+--------------------------+
|clientId|channelGrouping| customDimensions |
+--------+---------------+--------------------------+
| 123 | alpha | [[1, a], [2, b] |
| 456 | beta | [[1, a], [2, b], [3, c] |
+--------+---------------+--------------------------+
select
*
from
Код: Выделить всё
some_tableREGEXP_CONTAINS((ВЫБЕРИТЕ значение FROM UNNEST(customDimensions) WHERE index=2), r'b')
Подробнее здесь: https://stackoverflow.com/questions/645 ... of-structs