Python 3.x 在pyspark中将值随机更改为空值的最有效方法是什么?
试图找出如何用空值随机替换Pyspark中的特定列。因此,更改数据帧如下:Python 3.x 在pyspark中将值随机更改为空值的最有效方法是什么?,python-3.x,apache-spark,pyspark,Python 3.x,Apache Spark,Pyspark,试图找出如何用空值随机替换Pyspark中的特定列。因此,更改数据帧如下: | A | B | |----|----| | 1 | 2 | | 3 | 4 | | 5 | 6 | | 7 | 8 | | 9 | 10 | | 11 | 12 | 并将列“B”中25%的值随机更改为空值: | A | B | |----|------| | 1 | 2 | | 3 | NULL | | 5 | 6 | | 7 | NULL | | 9 | NUL
| A | B |
|----|----|
| 1 | 2 |
| 3 | 4 |
| 5 | 6 |
| 7 | 8 |
| 9 | 10 |
| 11 | 12 |
并将列“B”中25%的值随机更改为空值:
| A | B |
|----|------|
| 1 | 2 |
| 3 | NULL |
| 5 | 6 |
| 7 | NULL |
| 9 | NULL |
| 11 | 12 |
多亏了@pault,我能够用他发布的问题回答我自己的问题,你可以找到这个问题 基本上我是这样做的:
import pyspark.sql.functions as f
df1 = df.withColumn('Val', f.when(f.rand() > 0.25, df1['Val']).otherwise(f.lit(None))
它将随机选择“Val”列中的值,并将其转换为无值与一起使用。如果随机值<0.25,则将其替换为null
。下面是一个非常类似的示例:。这不是一个完全的骗局,所以如果这不能回答你的问题,我可以发布一个答案。另请参见: