snowflake.snowpark.Session.flattenΒΆ
- Session.flatten(input: Union[snowflake.snowpark.column.Column, str], path: Optional[str] = None, outer: bool = False, recursive: bool = False, mode: str = 'BOTH') DataFrame[source]ΒΆ
Creates a new
DataFrameby flattening compound values into multiple rows.The new
DataFramewill consist of the following columns:SEQ
KEY
PATH
INDEX
VALUE
THIS
References: Snowflake SQL function FLATTEN.
Example:
df = session.flatten(parse_json(lit('{"a":[1,2]}')), "a", False, False, "BOTH")
- Parameters:
input β The name of a column or a
Columninstance that will be unseated into rows. The column data must be of Snowflake data type VARIANT, OBJECT, or ARRAY.path β The path to the element within a VARIANT data structure which needs to be flattened. The outermost element is to be flattened if path is empty or
None.outer β If
False, any input rows that cannot be expanded, either because they cannot be accessed in thepathor because they have zero fields or entries, are completely omitted from the output. Otherwise, exactly one row is generated for zero-row expansions (with NULL in the KEY, INDEX, and VALUE columns).recursive β If
False, only the element referenced bypathis expanded. Otherwise, the expansion is performed for all sub-elements recursively.mode β Specifies which types should be flattened βOBJECTβ, βARRAYβ, or βBOTHβ.
- Returns:
A new
DataFramethat has the flattened new columns and new rows from the compound data.
Example:
>>> from snowflake.snowpark.functions import lit, parse_json >>> session.flatten(parse_json(lit('{"a":[1,2]}')), path="a", outer=False, recursive=False, mode="BOTH").show() ------------------------------------------------------- |"SEQ" |"KEY" |"PATH" |"INDEX" |"VALUE" |"THIS" | ------------------------------------------------------- |1 |NULL |a[0] |0 |1 |[ | | | | | | | 1, | | | | | | | 2 | | | | | | |] | |1 |NULL |a[1] |1 |2 |[ | | | | | | | 1, | | | | | | | 2 | | | | | | |] | -------------------------------------------------------
See also
DataFrame.flatten(), which creates a newDataFrameby exploding a VARIANT column of an existingDataFrame.Session.table_function(), which can be used for any Snowflake table functions, includingflatten.
This function or method is deprecated since 0.7.0. Use
table_function()instead.