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 the- pathor 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 by- pathis 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 new- DataFrameby exploding a VARIANT column of an existing- DataFrame.
- Session.table_function(), which can be used for any Snowflake table functions, including- flatten.
 - This function or method is deprecated since 0.7.0. Use - table_function()instead.