【发布时间】:2019-10-18 00:40:28
【问题描述】:
我正在尝试对列值满足特定条件的 Pyspark 数据帧进行随机抽样。我想使用sample 方法根据列值随机选择行。假设我有以下数据框:
+---+----+------+-------------+------+
| id|code| amt|flag_outliers|result|
+---+----+------+-------------+------+
| 1| a| 10.9| 0| 0.0|
| 2| b| 20.7| 0| 0.0|
| 3| c| 30.4| 0| 1.0|
| 4| d| 40.98| 0| 1.0|
| 5| e| 50.21| 0| 2.0|
| 6| f| 60.7| 0| 2.0|
| 7| g| 70.8| 0| 2.0|
| 8| h| 80.43| 0| 3.0|
| 9| i| 90.12| 0| 3.0|
| 10| j|100.65| 0| 3.0|
+---+----+------+-------------+------+
我想根据result 列仅对0, 1, 2, 3 中的每一个进行采样(或任何一定数量),所以我最终会得到这个:
+---+----+------+-------------+------+
| id|code| amt|flag_outliers|result|
+---+----+------+-------------+------+
| 1| a| 10.9| 0| 0.0|
| 3| c| 30.4| 0| 1.0|
| 5| e| 50.21| 0| 2.0|
| 8| h| 80.43| 0| 3.0|
+---+----+------+-------------+------+
是否有一种很好的编程方式来实现这一点,即对某一列中给出的每个值采用相同数量的行?非常感谢任何帮助!
【问题讨论】:
标签: python random pyspark pyspark-sql pyspark-dataframes