Condividi tramite


sampleBy (DataFrame)

Restituisce un campione stratificato senza sostituzione in base alla frazione specificata in ogni strato.

Sintassi

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

Parametri

Parametro Tipo Descrizione
col Colonna o str colonna che definisce strata.
fractions dizionario frazione di campionamento per ogni strato. Se non si specifica uno strato, la frazione viene considerata come zero.
seed int, facoltativo valore di inizializzazione casuale.

Restituzioni

nuovo dataframe che rappresenta l'esempio stratificato.

Examples

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