sampleBy (DataFrame)

Возвращает стратифицированный образец без замены на основе дроби, заданной на каждом страте.

Синтаксис

sampleBy(col: "ColumnOrName", fractions: Dict[Any, float], seed: Optional[int] = None)

Параметры

Параметр Тип Описание
col Столбец или str столбец, определяющий страту.
fractions Дикт дробь выборки для каждого страта. Если страт не указан, мы рассмотрим ее долю как ноль.
seed int, необязательный случайное начальное значение.

Возвраты

новый кадр данных, представляющий стратифицированный пример.

Примеры

from pyspark.sql import functions as sf
dataset = spark.range(0, 100, 1, 5).select((sf.col("id") % 3).alias("key"))
sampled = dataset.sampleBy("key", fractions={0: 0.1, 1: 0.2}, seed=0)
sampled.groupBy("key").count().orderBy("key").show()
# +---+-----+
# |key|count|
# +---+-----+
# |  0|    4|
# |  1|    9|
# +---+-----+

dataset.sampleBy(sf.col("key"), fractions={2: 1.0}, seed=0).count()
# 33