Cara Membahagikan Struktur Data Kompleks dalam Spark DataFrames
Dalam kerangka data Spark, struktur data kompleks seperti struct dan peta boleh digunakan untuk menyimpan data bersarang dengan cekap. Walau bagaimanapun, mungkin perlu untuk meratakan struktur ini untuk berfungsi dengan elemen individu secara langsung.
Meratakan Struktur Bersarang
Untuk mengekstrak medan bersarang struct, col fungsi boleh digabungkan dengan simbol * kad bebas. Sebagai contoh, pertimbangkan skema bingkai data berikut:
|-- 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)
Untuk meratakan struct ini dan mencipta bingkai data baharu, gunakan:
df.select(df.col("data.*"))
Ini akan mencipta bingkai data dengan struktur diratakan berikut:
|-- 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)
Meratakan Peta Bersarang
Begitu juga, peta bersarang boleh diratakan menggunakan sintaks berikut:
df.select(df.col("data.details").as("map_details"))
Ini akan mencipta bingkai data dengan peta yang diratakan sebagai lajur baharu bernama "map_details". Lajur akan mempunyai struktur berikut:
|-- map_details: map (nullable = true) | |-- key: string | |-- value: string (valueContainsNull = true)
Atas ialah kandungan terperinci Bagaimana untuk Meratakan Struktur Data Kompleks dalam Spark DataFrames?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!