我正在尝试以最有效的方式拆分Dataframe(约2亿行)。下面是一个测试样本来解释:
df.show()
+----+------+--------+
| id | size | weight |
+----+------+--------+
| 1 | 10 | 200 |
| 2 | 50 | 100 |
| 3 | 75 | 300 |
+----+------+--------+
我正在尝试将此Dataframe拆分为两组,例如一个有效和错误文件(或者至少作为Parquet文件直接保存到我的hdfs),具体取决于过滤器,例如,size>50&weight>300,因此我可以在该过滤器上拆分我的Dataframe。
我的第一个直觉是根据不同的过滤器创建一个布尔列(0,1),然后对这些新列求和,最后应用过滤器>0和==0来创建我的2个集合。
这是一个有效的方法还是你认为有更好的解决方案?
1条答案
按热度按时间xn1cxnb41#
是的,你提议的主意听起来不错。一旦你定义了
df
,我建议使用如下代码:上面将添加一个新列,其中包含与您的条件是否满足相对应的布尔项。然后,我会过滤掉这些结果,以便创建您要查找的两个数据集: