flatten command - Amazon OpenSearch Service

flatten command

Note

To see which AWS data source integrations support this PPL command, see Commands.

Use the flatten command to expand fields of the following types:

  • struct<?,?>

  • array<struct<?,?>>

Syntax

Use the following syntax:

flatten <field>
  • field: The field to be flattened. The field must be of supported type.

Schema

col_name data_type
_time string
bridges array<struct<length:bigint,name:string>>
city string
coor struct<alt:bigint,lat:double,long:double>
country string
Data

_time bridges city coor country
2024-09-13T12:00:00 [{801, Tower Bridge}, {928, London Bridge}] London {35, 51.5074, -0.1278} England
2024-09-13T12:00:00 [{232, Pont Neuf}, {160, Pont Alexandre III}] Paris {35, 48.8566, 2.3522} France
2024-09-13T12:00:00 [{48, Rialto Bridge}, {11, Bridge of Sighs}] Venice {2, 45.4408, 12.3155} Italy
2024-09-13T12:00:00 [{***, Charles Bridge}, {343, Legion Bridge}] Prague {200, 50.0755, 14.4378} Czech Republic
2024-09-13T12:00:00 [{375, Chain Bridge}, {333, Liberty Bridge}] Budapest {96, 47.4979, 19.0402} Hungary
1990-09-13T12:00:00 NULL Warsaw NULL Poland
Example 1: flatten struct

This example shows how to flatten a struct field.

PPL query:

source=table | flatten coor
_time bridges city country alt lat long
2024-09-13T12:00:00 [{801, Tower Bridge}, {928, London Bridge}] London England 35 51.5074 -0.1278
2024-09-13T12:00:00 [{232, Pont Neuf}, {160, Pont Alexandre III}] Paris France 35 48.8566 2.3522
2024-09-13T12:00:00 [{48, Rialto Bridge}, {11, Bridge of Sighs}] Venice Italy 2 45.4408 12.3155
2024-09-13T12:00:00 [{516, Charles Bridge}, {343, Legion Bridge}] Prague Czech Republic 200 50.0755 14.4378
2024-09-13T12:00:00 [{375, Chain Bridge}, {333, Liberty Bridge}] Budapest Hungary 96 47.4979 19.0402
1990-09-13T12:00:00 NULL Warsaw Poland NULL NULL NULL
Example 2: flatten array

The example shows how to flatten an array of struct fields.

PPL query:

source=table | flatten bridges
_time city coor country length name
2024-09-13T12:00:00 London {35, 51.5074, -0.1278} England 801 Tower Bridge
2024-09-13T12:00:00 London {35, 51.5074, -0.1278} England 928 London Bridge
2024-09-13T12:00:00 Paris {35, 48.8566, 2.3522} France 232 Pont Neuf
2024-09-13T12:00:00 Paris {35, 48.8566, 2.3522} France 160 Pont Alexandre III
2024-09-13T12:00:00 Venice {2, 45.4408, 12.3155} Italy 48 Rialto Bridge
2024-09-13T12:00:00 Venice {2, 45.4408, 12.3155} Italy 11 Bridge of Sighs
2024-09-13T12:00:00 Prague {200, 50.0755, 14.4378} Czech Republic 516 Charles Bridge
2024-09-13T12:00:00 Prague {200, 50.0755, 14.4378} Czech Republic 343 Legion Bridge
2024-09-13T12:00:00 Budapest {96, 47.4979, 19.0402} Hungary 375 Chain Bridge
2024-09-13T12:00:00 Budapest {96, 47.4979, 19.0402} Hungary 333 Liberty Bridge
1990-09-13T12:00:00 Warsaw NULL Poland NULL NULL
Example 3: flatten array and struct

This example shows how to flatten multiple fields.

PPL query:

source=table | flatten bridges | flatten coor
_time city country length name alt lat long
2024-09-13T12:00:00 London England 801 Tower Bridge 35 51.5074 -0.1278
2024-09-13T12:00:00 London England 928 London Bridge 35 51.5074 -0.1278
2024-09-13T12:00:00 Paris France 232 Pont Neuf 35 48.8566 2.3522
2024-09-13T12:00:00 Paris France 160 Pont Alexandre III 35 48.8566 2.3522
2024-09-13T12:00:00 Venice Italy 48 Rialto Bridge 2 45.4408 12.3155
2024-09-13T12:00:00 Venice Italy 11 Bridge of Sighs 2 45.4408 12.3155
2024-09-13T12:00:00 Prague Czech Republic 516 Charles Bridge 200 50.0755 14.4378
2024-09-13T12:00:00 Prague Czech Republic 343 Legion Bridge 200 50.0755 14.4378
2024-09-13T12:00:00 Budapest Hungary 375 Chain Bridge 96 47.4979 19.0402
2024-09-13T12:00:00 Budapest Hungary 333 Liberty Bridge 96 47.4979 19.0402
1990-09-13T12:00:00 Warsaw Poland NULL NULL NULL NULL NULL