nxcals.api.extraction.data.builders.DataFrame.sampleBy
- DataFrame.sampleBy(col: ColumnOrName, fractions: Dict[Any, float], seed: Optional[int] = None) DataFrame
Returns a stratified sample without replacement based on the fraction given on each stratum.
New in version 1.5.0.
Changed in version 3.4.0: Supports Spark Connect.
- Parameters:
col (
Column
or str) –column that defines strata
Changed in version 3.0.0: Added sampling by a column of
Column
fractions (dict) – sampling fraction for each stratum. If a stratum is not specified, we treat its fraction as zero.
seed (int, optional) – random seed
- Return type:
a new
DataFrame
that represents the stratified sample
Examples
>>> from pyspark.sql.functions import col >>> dataset = spark.range(0, 100).select((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| 3| | 1| 6| +---+-----+ >>> dataset.sampleBy(col("key"), fractions={2: 1.0}, seed=0).count() 33