smallpond.dataframe.DataFrame.flat_map#

DataFrame.flat_map(sql_or_func: str | Callable[[Dict[str, Any]], List[Dict[str, Any]]], *, schema: Schema | None = None, **kwargs) DataFrame#

Apply a function to each row and flatten the result.

Parameters#

sql_or_func

A SQL expression or a function to apply to each row. For functions, it should take a dictionary of columns as input and returns a list of dictionaries. SQL expression is preferred as it’s more efficient.

schema, optional

The schema of the output DataFrame. If not passed, will be inferred from the first row of the mapping values.

Examples#

df = df.flat_map('unnest(array[a, b]) as c')
df = df.flat_map(lambda row: [{'c': row['a']}, {'c': row['b']}])