展平Spark Dataframe 中的巢狀結構
人們可能會遇到資料框包含複雜巢結構的情況,因此有複雜巢結構的情況,因此有必要展平它們。考慮具有以下結構的資料框:
|-- data: struct (nullable = true) | |-- id: long (nullable = true) | |-- keyNote: struct (nullable = true) | | |-- key: string (nullable = true) | | |-- note: string (nullable = true) | |-- details: map (nullable = true) | | |-- key: string | | |-- value: string (valueContainsNull = true)
目標是扁平化此結構並創建具有以下簡化結構的新資料框:
|-- id: long (nullable = true) |-- keyNote: struct (nullable = true) | |-- key: string (nullable = true) | |-- note: string (nullable = true) |-- details: map (nullable = true) | |-- key: string | |-- value: string (valueContainsNull = true)
雖然Spark 沒有明確提供對於結構體的「explode」函數,在Spark 1.6 或更高版本中可以使用以下方法來實現所需的結果:
df.select(df.col("data.*"))
或者,如果只需要「data」結構體的特定字段,則可以使用以下語法:
df.select(df.col("data.id"), df.col("data.keyNote"), df.col("data.details"))
透過利用這些技術,可以展平Spark 資料幀中的複雜嵌套結構,從而能夠進一步分析和操作資料。
以上是如何展平 Spark Dataframe 中的嵌套結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!