min_by

Ord parametresindeki en düşük değerle ilişkili sütun parametresindeki değeri döndürür. Bu işlev genellikle groupBy() ile kullanıldığında her gruptaki en düşük ord parametre değerine karşılık gelen sütun parametresi değerini bulmak için kullanılır. İşlev belirleyici değildir, bu nedenle çıkış sırası aynı sütun değerleriyle ilişkili olanlar için farklı olabilir.

Sözdizimi

from pyspark.sql import functions as sf

sf.min_by(col, ord)

Parametreler

Parametre Türü Description
col pyspark.sql.Column veya sütun adı Döndürülecek değerleri temsil eden sütun. Bu, sütun örneği veya dize olarak sütun adı olabilir.
ord pyspark.sql.Column veya sütun adı Simge durumuna küçültülmesi gereken sütun. Bu, sütun örneği veya dize olarak sütun adı olabilir.

İade

pyspark.sql.Column: öğesinden col en düşük değerle ilişkili değerini ordtemsil eden sütun nesnesi.

Örnekler

Örnek 1: groupBy ile min_by kullanma

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.min_by("year", "earnings")).sort("course").show()
+------+----------------------+
|course|min_by(year, earnings)|
+------+----------------------+
|  Java|                  2012|
|dotNET|                  2012|
+------+----------------------+

Örnek 2: Farklı veri türleriyle min_by kullanma

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.min_by("name", "years_in_dept")
).sort("department").show()
+----------+---------------------------+
|department|min_by(name, years_in_dept)|
+----------+---------------------------+
|        IT|                        Bob|
| Marketing|                      David|
+----------+---------------------------+

Örnek 3: Ord'un birden çok minimum değeri olduğu min_by kullanma

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.min_by("name", "years_in_dept")
).sort("department").show()
+----------+---------------------------+
|department|min_by(name, years_in_dept)|
+----------+---------------------------+
|   Consult|                        Eva|
|   Finance|                      Frank|
+----------+---------------------------+