PySpark样品每列按不同馏分

时间:2018-08-23 21:43:39

标签: apache-spark pyspark pyspark-sql

我有一个数据框df,其中包含一列"freq",该列的每一行代表选择该行进行输出的概率。我目前正在使用sampleBy进行采样:

frac = dict(
    (e.freq, e.freq)
    for e
    in df.select("freq").distinct().collect()
)
result = df.sampleBy("freq", fractions = frac) 

这是受this启发的,但似乎不太干净。有没有一种方法可以避免创建类似lambda x: x

的伪字典呢?

编辑:

说数据集是

+-----+----+---- 
| Name|freq| other columns
|Alice| 0.3|
|  Bob| 0.2|
|  Joe| 0.3|
...

我希望最终的数据帧包含Alice和Joe的行,每个行的概率为0.3,Bob的行的概率为0.2,依此类推。

0 个答案:

没有答案