【发布时间】:2020-10-29 17:32:51
【问题描述】:
我有一个具有以下架构的 pyspark 数据框:
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)
我想获取 customDimensions 的索引“2”与正则表达式 r'b' 匹配的所有记录。
示例输入
+--------+---------------+--------------------------+
|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] |
+--------+---------------+--------------------------+
在 bigquery 中,这可以使用以下查询来实现:
选择
*
从
some_table
在哪里
REGEXP_CONTAINS((SELECT value FROM UNNEST(customDimensions) WHERE index=2), r'b')
【问题讨论】:
标签: python dataframe apache-spark pyspark