Compartilhar via


sampleBy (DataFrame)

Retorna uma amostra estratificada sem substituição com base na fração fornecida em cada estrato.

Sintaxe

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

Parâmetros

Parâmetro Tipo Descrição
col Coluna ou str coluna que define estratos.
fractions dicionário fração de amostragem para cada estrato. Se um estrato não for especificado, trataremos sua fração como zero.
seed int, opcional semente aleatória.

Devoluções

um novo DataFrame que representa o exemplo estratificado.

Exemplos

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