Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kumpulan data terdistribusi yang dikelompokkan ke dalam kolom bernama.
DataFrame setara dengan tabel relasional di Spark SQL, dan dapat dibuat menggunakan berbagai fungsi di SparkSession.
Penting
DataFrame tidak boleh dibuat secara langsung menggunakan konstruktor.
Mendukung Spark Connect
Karakteristik
| Harta benda | Deskripsi |
|---|---|
sparkSession |
Mengembalikan SparkSession yang membuat DataFrame ini. |
rdd |
Mengembalikan konten sebagai RDD Baris (mode Klasik saja). |
na |
Mengembalikan DataFrameNaFunctions untuk menangani nilai yang hilang. |
stat |
Mengembalikan DataFrameStatFunctions untuk fungsi statistik. |
write |
Antarmuka untuk menyimpan konten DataFrame non-streaming ke penyimpanan eksternal. |
writeStream |
Antarmuka untuk menyimpan konten DataFrame streaming ke penyimpanan eksternal. |
schema |
Mengembalikan skema DataFrame ini sebagai StructType. |
dtypes |
Mengembalikan semua nama kolom dan tipe datanya sebagai daftar. |
columns |
Mengambil nama semua kolom dalam DataFrame sebagai daftar. |
storageLevel |
Dapatkan tingkat penyimpanan DataFrame saat ini. |
isStreaming |
Mengembalikan True jika DataFrame ini berisi satu atau beberapa sumber yang terus mengembalikan data saat data tiba. |
executionInfo |
Mengembalikan objek ExecutionInfo setelah kueri dijalankan. |
plot |
Mengembalikan PySparkPlotAccessor untuk memplot fungsi. |
Metode
Tampilan dan inspeksi data
| Metode | Deskripsi |
|---|---|
toJSON(use_unicode) |
Mengonversi DataFrame menjadi RDD string atau DataFrame. |
printSchema(level) |
Mencetak skema dalam format pohon. |
explain(extended, mode) |
Mencetak paket (logis dan fisik) ke konsol untuk tujuan penelusuran kesalahan. |
show(n, truncate, vertical) |
Mencetak baris n pertama DataFrame ke konsol. |
collect() |
Mengembalikan semua rekaman dalam DataFrame sebagai daftar Baris. |
toLocalIterator(prefetchPartitions) |
Mengembalikan iterator yang berisi semua baris dalam DataFrame ini. |
take(num) |
Mengembalikan baris num pertama sebagai daftar Baris. |
tail(num) |
Mengembalikan baris num terakhir sebagai daftar Baris. |
head(n) |
Mengembalikan baris n pertama. |
first() |
Mengembalikan baris pertama sebagai Baris. |
count() |
Mengembalikan jumlah baris dalam DataFrame ini. |
isEmpty() |
Memeriksa apakah DataFrame kosong dan mengembalikan nilai boolean. |
describe(*cols) |
Menghitung statistik dasar untuk kolom numerik dan string. |
summary(*statistics) |
Menghitung statistik yang ditentukan untuk kolom numerik dan string. |
Tampilan sementara
| Metode | Deskripsi |
|---|---|
createTempView(name) |
Membuat tampilan sementara lokal dengan DataFrame ini. |
createOrReplaceTempView(name) |
Membuat atau mengganti tampilan sementara lokal dengan DataFrame ini. |
createGlobalTempView(name) |
Membuat tampilan sementara global dengan DataFrame ini. |
createOrReplaceGlobalTempView(name) |
Membuat atau mengganti tampilan sementara global menggunakan nama yang diberikan. |
Pemilihan dan proyeksi
| Metode | Deskripsi |
|---|---|
select(*cols) |
Memproyeksikan sekumpulan ekspresi dan mengembalikan DataFrame baru. |
selectExpr(*expr) |
Memproyeksikan sekumpulan ekspresi SQL dan mengembalikan DataFrame baru. |
filter(condition) |
Memfilter baris menggunakan kondisi yang diberikan. |
where(condition) |
Alias untuk filter. |
drop(*cols) |
Mengembalikan DataFrame baru tanpa kolom tertentu. |
toDF(*cols) |
Mengembalikan DataFrame baru dengan nama kolom baru yang ditentukan. |
withColumn(colName, col) |
Mengembalikan DataFrame baru dengan menambahkan kolom atau mengganti kolom yang sudah ada yang memiliki nama yang sama. |
withColumns(*colsMap) |
Mengembalikan DataFrame baru dengan menambahkan beberapa kolom atau mengganti kolom yang sudah ada yang memiliki nama yang sama. |
withColumnRenamed(existing, new) |
Mengembalikan DataFrame baru dengan mengganti nama kolom yang sudah ada. |
withColumnsRenamed(colsMap) |
Mengembalikan DataFrame baru dengan mengganti nama beberapa kolom. |
withMetadata(columnName, metadata) |
Mengembalikan DataFrame baru dengan memperbarui kolom yang sudah ada dengan metadata. |
metadataColumn(colName) |
Memilih kolom metadata berdasarkan nama kolom logisnya dan mengembalikannya sebagai Kolom. |
colRegex(colName) |
Memilih kolom berdasarkan nama kolom yang ditentukan sebagai regex dan mengembalikannya sebagai Kolom. |
Pengurutan dan pengurutan
| Metode | Deskripsi |
|---|---|
sort(*cols, **kwargs) |
Mengembalikan DataFrame baru yang diurutkan menurut kolom yang ditentukan. |
orderBy(*cols, **kwargs) |
Alias untuk diurutkan. |
sortWithinPartitions(*cols, **kwargs) |
Mengembalikan DataFrame baru dengan setiap partisi yang diurutkan menurut kolom yang ditentukan. |
Agregasi dan pengelompokan
| Metode | Deskripsi |
|---|---|
groupBy(*cols) |
Mengelompokkan DataFrame menurut kolom yang ditentukan sehingga agregasi dapat dilakukan pada kolom tersebut. |
rollup(*cols) |
Buat rollup multi-dimensi untuk DataFrame saat ini menggunakan kolom yang ditentukan. |
cube(*cols) |
Buat kubus multi-dimensi untuk DataFrame saat ini menggunakan kolom yang ditentukan. |
groupingSets(groupingSets, *cols) |
Buat agregasi multi-dimensi untuk DataFrame saat ini menggunakan kumpulan pengelompokan yang ditentukan. |
agg(*exprs) |
Agregat pada seluruh DataFrame tanpa grup (singkatan untuk df.groupBy().agg()). |
observe(observation, *exprs) |
Tentukan metrik (bernama) untuk diamati pada DataFrame. |
Joins
| Metode | Deskripsi |
|---|---|
join(other, on, how) |
Bergabung dengan DataFrame lain, menggunakan ekspresi gabungan yang diberikan. |
crossJoin(other) |
Mengembalikan produk kartesius dengan DataFrame lain. |
lateralJoin(other, on, how) |
Lateral bergabung dengan DataFrame lain, menggunakan ekspresi gabungan yang diberikan. |
Mengatur operasi
| Metode | Deskripsi |
|---|---|
union(other) |
Mengembalikan DataFrame baru yang berisi penyatuan baris dalam ini dan DataFrame lainnya. |
unionByName(other, allowMissingColumns) |
Mengembalikan DataFrame baru yang berisi penyatuan baris dalam ini dan DataFrame lainnya. |
intersect(other) |
Mengembalikan DataFrame baru yang hanya berisi baris di DataFrame ini dan DataFrame lainnya. |
intersectAll(other) |
Mengembalikan DataFrame baru yang berisi baris di DataFrame ini dan DataFrame lain sambil mempertahankan duplikat. |
subtract(other) |
Mengembalikan DataFrame baru yang berisi baris dalam DataFrame ini tetapi tidak di DataFrame lain. |
exceptAll(other) |
Mengembalikan DataFrame baru yang berisi baris dalam DataFrame ini tetapi tidak di DataFrame lain sambil mempertahankan duplikat. |
Deduplication
| Metode | Deskripsi |
|---|---|
distinct() |
Mengembalikan DataFrame baru yang berisi baris yang berbeda dalam DataFrame ini. |
dropDuplicates(subset) |
Mengembalikan DataFrame baru dengan baris duplikat dihapus, secara opsional hanya mempertimbangkan kolom tertentu. |
dropDuplicatesWithinWatermark(subset) |
Mengembalikan DataFrame baru dengan baris duplikat dihapus, secara opsional hanya mempertimbangkan kolom tertentu, dalam marka air. |
Pengambilan sampel dan pemisahan
| Metode | Deskripsi |
|---|---|
sample(withReplacement, fraction, seed) |
Mengembalikan subset sampel dari DataFrame ini. |
sampleBy(col, fractions, seed) |
Mengembalikan sampel yang di stratifikasi tanpa penggantian berdasarkan pecahan yang diberikan pada setiap stratum. |
randomSplit(weights, seed) |
Membagi DataFrame ini secara acak dengan bobot yang disediakan. |
Partitioning
| Metode | Deskripsi |
|---|---|
coalesce(numPartitions) |
Mengembalikan DataFrame baru yang memiliki partisi numPartitions persis. |
repartition(numPartitions, *cols) |
Mengembalikan DataFrame baru yang dipartisi oleh ekspresi partisi yang diberikan. |
repartitionByRange(numPartitions, *cols) |
Mengembalikan DataFrame baru yang dipartisi oleh ekspresi partisi yang diberikan. |
repartitionById(numPartitions, partitionIdCol) |
Mengembalikan DataFrame baru yang dipartisi oleh ekspresi ID partisi yang diberikan. |
Membentuk ulang
| Metode | Deskripsi |
|---|---|
unpivot(ids, values, variableColumnName, valueColumnName) |
Batalkan pivot DataFrame dari format lebar ke format panjang. |
melt(ids, values, variableColumnName, valueColumnName) |
Alias untuk unpivot. |
transpose(indexColumn) |
Mengubah urutan DataFrame sehingga nilai di kolom indeks yang ditentukan menjadi kolom baru. |
Penanganan data yang hilang
| Metode | Deskripsi |
|---|---|
dropna(how, thresh, subset) |
Mengembalikan baris DataFrame baru yang menghilangkan baris dengan nilai null atau NaN. |
fillna(value, subset) |
Mengembalikan DataFrame baru yang nilai nullnya diisi dengan nilai baru. |
replace(to_replace, value, subset) |
Mengembalikan DataFrame baru yang menggantikan nilai dengan nilai lain. |
Fungsi statistik
| Metode | Deskripsi |
|---|---|
approxQuantile(col, probabilities, relativeError) |
Menghitung perkiraan kuantil kolom numerik DataFrame. |
corr(col1, col2, method) |
Menghitung korelasi dua kolom DataFrame sebagai nilai ganda. |
cov(col1, col2) |
Hitung kovarians sampel untuk kolom yang diberikan, yang ditentukan oleh namanya. |
crosstab(col1, col2) |
Menghitung tabel frekuensi sepasang yang bijaksana dari kolom yang diberikan. |
freqItems(cols, support) |
Menemukan item yang sering untuk kolom, mungkin dengan positif palsu. |
Operasi skema
| Metode | Deskripsi |
|---|---|
to(schema) |
Mengembalikan DataFrame baru di mana setiap baris direkonsiliasi agar sesuai dengan skema yang ditentukan. |
alias(alias) |
Mengembalikan DataFrame baru dengan set alias. |
Iteration
| Metode | Deskripsi |
|---|---|
foreach(f) |
Menerapkan fungsi f ke semua Baris DataFrame ini. |
foreachPartition(f) |
Menerapkan fungsi f ke setiap partisi DataFrame ini. |
Penembolokan dan persistensi
| Metode | Deskripsi |
|---|---|
cache() |
Mempertahankan DataFrame dengan tingkat penyimpanan default (MEMORY_AND_DISK_DESER). |
persist(storageLevel) |
Mengatur tingkat penyimpanan untuk mempertahankan konten DataFrame di seluruh operasi. |
unpersist(blocking) |
Menandai DataFrame sebagai tidak persisten, dan menghapus semua blok untuknya dari memori dan disk. |
Titik Pemeriksaan
| Metode | Deskripsi |
|---|---|
checkpoint(eager) |
Mengembalikan versi checkpoint dari DataFrame ini. |
localCheckpoint(eager, storageLevel) |
Mengembalikan versi DataFrame yang dicentang secara lokal. |
Operasi streaming
| Metode | Deskripsi |
|---|---|
withWatermark(eventTime, delayThreshold) |
Menentukan marka air waktu peristiwa untuk DataFrame ini. |
Petunjuk pengoptimalan
| Metode | Deskripsi |
|---|---|
hint(name, *parameters) |
Menentukan beberapa petunjuk pada DataFrame saat ini. |
Batas dan offset
| Metode | Deskripsi |
|---|---|
limit(num) |
Membatasi jumlah hasil ke angka yang ditentukan. |
offset(num) |
Mengembalikan DataFrame baru dengan melewati baris n pertama. |
Transformasi tingkat lanjut
| Metode | Deskripsi |
|---|---|
transform(func, *args, **kwargs) |
Mengembalikan DataFrame baru. Sintaksis ringkas untuk menautkan transformasi kustom. |
Metode konversi
| Metode | Deskripsi |
|---|---|
toPandas() |
Mengembalikan konten DataFrame ini sebagai panda Pandas. DataFrame. |
toArrow() |
Mengembalikan konten DataFrame ini sebagai PyArrow pyarrow. Meja. |
pandas_api(index_col) |
Mengonversi DataFrame yang ada menjadi pandas-on-Spark DataFrame. |
mapInPandas(func, schema, barrier, profile) |
Memetakan iterator batch dalam DataFrame saat ini menggunakan fungsi asli Python. |
mapInArrow(func, schema, barrier, profile) |
Memetakan iterator batch dalam DataFrame saat ini menggunakan fungsi asli Python yang dilakukan pada pyarrow. RecordBatch. |
Penulisan data
| Metode | Deskripsi |
|---|---|
writeTo(table) |
Buat penyusun konfigurasi tulis untuk sumber v2. |
mergeInto(table, condition) |
Menggabungkan serangkaian pembaruan, penyisipan, dan penghapusan berdasarkan tabel sumber ke dalam tabel target. |
Perbandingan DataFrame
| Metode | Deskripsi |
|---|---|
sameSemantics(other) |
Mengembalikan True saat kueri logis merencanakan di dalam kedua DataFrames sama. |
semanticHash() |
Mengembalikan kode hash dari rencana kueri logis terhadap DataFrame ini. |
Metadata dan informasi file
| Metode | Deskripsi |
|---|---|
inputFiles() |
Mengembalikan rekam jepret upaya terbaik dari file yang menyusun DataFrame ini. |
Fitur SQL tingkat lanjut
| Metode | Deskripsi |
|---|---|
isLocal() |
Mengembalikan True jika metode kumpulkan dan ambil dapat dijalankan secara lokal. |
asTable() |
Mengonversi DataFrame menjadi objek TableArg, yang dapat digunakan sebagai argumen tabel di TVF. |
scalar() |
Mengembalikan objek Kolom untuk Subkueri SCALAR yang berisi tepat satu baris dan satu kolom. |
exists() |
Mengembalikan objek Kolom untuk Subkueri EXISTS. |
Examples
Operasi DataFrame Dasar
# Create a DataFrame
people = spark.createDataFrame([
{"deptId": 1, "age": 40, "name": "Alice", "gender": "M", "salary": 50},
{"deptId": 1, "age": 50, "name": "Bob", "gender": "M", "salary": 100},
{"deptId": 2, "age": 60, "name": "Sue", "gender": "F", "salary": 150},
{"deptId": 3, "age": 20, "name": "Tom", "gender": "M", "salary": 200}
])
# Select columns
people.select("name", "age").show()
# Filter rows
people.filter(people.age > 30).show()
# Add a new column
people.withColumn("age_plus_10", people.age + 10).show()
Agregasi dan pengelompokan
# Group by and aggregate
people.groupBy("gender").agg({"salary": "avg", "age": "max"}).show()
# Multiple aggregations
from pyspark.sql import functions as F
people.groupBy("deptId").agg(
F.avg("salary").alias("avg_salary"),
F.max("age").alias("max_age")
).show()
Joins
# Create another DataFrame
department = spark.createDataFrame([
{"id": 1, "name": "PySpark"},
{"id": 2, "name": "ML"},
{"id": 3, "name": "Spark SQL"}
])
# Join DataFrames
people.join(department, people.deptId == department.id).show()
Transformasi kompleks
# Chained operations
result = people.filter(people.age > 30) \\
.join(department, people.deptId == department.id) \\
.groupBy(department.name, "gender") \\
.agg({"salary": "avg", "age": "max"}) \\
.sort("max(age)")
result.show()