sampleBy (DataFrame)

Devuelve una muestra estratificada sin reemplazo en función de la fracción dada en cada estrato.

Sintaxis

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

Parámetros

Parámetro Tipo Descripción
col Columna o str columna que define strata.
fractions diccionario fracción de muestreo para cada estrato. Si no se especifica un estrato, tratamos su fracción como cero.
seed int, opcional inicialización aleatoria.

Devoluciones

un nuevo DataFrame que representa el ejemplo estratificado.

Ejemplos

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