title_wip

### Search[​](#arr-search "Direct link to Search")

|  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Method ClickHouse Description|  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | `has(elem)` `has()` Contains element|  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | | `index_of(elem)` `indexOf()` Find index|  |  |  | | --- | --- | --- | | `count_equal(elem)` `countEqual()` Count occurrences | | | | | | | | | | | |

```
ds['has_python'] = ds['skills'].arr.has('Python')
```

### String Operations[​](#arr-string "Direct link to String Operations")

|  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- |
| Method ClickHouse Description|  |  |  | | --- | --- | --- | | `array_string_concat(sep)` `arrayStringConcat()` Join to string | | | | | |

```
ds['tags_str'] = ds['tags'].arr.array_string_concat(', ')
```

---

## JSON Accessor (`.json`)[​](#json "Direct link to json")

ClickHouse-specific JSON parsing (13 methods).

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Method ClickHouse Description|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | `get_string(path)` `JSONExtractString()` Extract string|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | `get_int(path)` `JSONExtractInt()` Extract integer|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | `get_float(path)` `JSONExtractFloat()` Extract float|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | `get_bool(path)` `JSONExtractBool()` Extract boolean|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | `get_raw(path)` `JSONExtractRaw()` Extract raw JSON|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | `get_keys()` `JSONExtractKeys()` Get keys|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | `get_type(path)` `JSONType()` Get type|  |  |  |  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | `get_length(path)` `JSONLength()` Get length|  |  |  |  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | `has_key(key)` `JSONHas()` Check key exists|  |  |  |  |  |  | | --- | --- | --- | --- | --- | --- | | `is_valid()` `isValidJSON()` Validate JSON|  |  |  | | --- | --- | --- | | `to_json_string()` `toJSONString()` Convert to JSON | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

```
# Parse JSON columns
ds['user_name'] = ds['json_data'].json.get_string('user.name')
ds['user_age'] = ds['json_data'].json.get_int('user.age')
ds['is_active'] = ds['json_data'].json.get_bool('user.active')
ds['has_email'] = ds['json_data'].json.has_key('user.email')
```

---

## URL Accessor (`.url`)[​](#url "Direct link to url")

ClickHouse-specific URL parsing (15 methods).