Flatten the fields of a struct expression into columns in a DataFrame.
Examples:
| >>> import daft
>>> df = daft.from_pydict(
... {
... "struct": [
... {"x": 1, "y": 2},
... {"x": 3, "y": 4},
... ]
... }
... )
>>> unnested_df = df.select(unnest(df["struct"]))
>>> unnested_df.show()
|
╭───────┬───────╮
│ x ┆ y │
│ --- ┆ --- │
│ Int64 ┆ Int64 │
╞═══════╪═══════╡
│ 1 ┆ 2 │
├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ 3 ┆ 4 │
╰───────┴───────╯
(Showing first 2 of 2 rows)
Source code in daft/functions/struct.py
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 | def unnest(expr: Expression) -> Expression:
"""Flatten the fields of a struct expression into columns in a DataFrame.
Examples:
>>> import daft
>>> df = daft.from_pydict(
... {
... "struct": [
... {"x": 1, "y": 2},
... {"x": 3, "y": 4},
... ]
... }
... )
>>> unnested_df = df.select(unnest(df["struct"]))
>>> unnested_df.show()
╭───────┬───────╮
│ x ┆ y │
│ --- ┆ --- │
│ Int64 ┆ Int64 │
╞═══════╪═══════╡
│ 1 ┆ 2 │
├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌┤
│ 3 ┆ 4 │
╰───────┴───────╯
<BLANKLINE>
(Showing first 2 of 2 rows)
"""
return expr.get("*")
|