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.
Mengembalikan nilai dari parameter col yang terkait dengan nilai maksimum dari parameter ord. Fungsi ini sering digunakan untuk menemukan nilai parameter col yang sesuai dengan nilai parameter ord maksimum dalam setiap grup saat digunakan dengan groupBy(). Fungsi ini tidak deterministik sehingga urutan output dapat berbeda untuk mereka yang terkait dengan nilai col yang sama.
Syntax
from pyspark.sql import functions as sf
sf.max_by(col, ord)
Parameter-parameternya
| Pengaturan | Tipe | Description |
|---|---|---|
col |
pyspark.sql.Column atau nama kolom |
Kolom yang mewakili nilai yang akan dikembalikan. Ini bisa berupa instans kolom atau nama kolom sebagai string. |
ord |
pyspark.sql.Column atau nama kolom |
Kolom yang perlu dimaksimalkan. Ini bisa berupa instans kolom atau nama kolom sebagai string. |
Pengembalian Barang
pyspark.sql.Column: Objek kolom yang mewakili nilai dari col yang terkait dengan nilai maksimum dari ord.
Examples
Contoh 1: Menggunakan max_by dengan groupBy
import pyspark.sql.functions as sf
df = spark.createDataFrame([
("Java", 2012, 20000), ("dotNET", 2012, 5000),
("dotNET", 2013, 48000), ("Java", 2013, 30000)],
schema=("course", "year", "earnings"))
df.groupby("course").agg(sf.max_by("year", "earnings")).sort("course").show()
+------+----------------------+
|course|max_by(year, earnings)|
+------+----------------------+
| Java| 2013|
|dotNET| 2013|
+------+----------------------+
Contoh 2: Menggunakan max_by dengan jenis data yang berbeda
import pyspark.sql.functions as sf
df = spark.createDataFrame([
("Marketing", "Anna", 4), ("IT", "Bob", 2),
("IT", "Charlie", 3), ("Marketing", "David", 1)],
schema=("department", "name", "years_in_dept"))
df.groupby("department").agg(
sf.max_by("name", "years_in_dept")
).sort("department").show()
+----------+---------------------------+
|department|max_by(name, years_in_dept)|
+----------+---------------------------+
| IT| Charlie|
| Marketing| Anna|
+----------+---------------------------+
Contoh 3: Menggunakan max_by di mana ord memiliki beberapa nilai maksimum
import pyspark.sql.functions as sf
df = spark.createDataFrame([
("Consult", "Eva", 6), ("Finance", "Frank", 5),
("Finance", "George", 9), ("Consult", "Henry", 7)],
schema=("department", "name", "years_in_dept"))
df.groupby("department").agg(
sf.max_by("name", "years_in_dept")
).sort("department").show()
+----------+---------------------------+
|department|max_by(name, years_in_dept)|
+----------+---------------------------+
| Consult| Henry|
| Finance| George|
+----------+---------------------------+