pyspark在数据框中找到重复的列

时间:2019-07-02 03:36:18

标签: pyspark

如何比较Spark数据框中的每一列? 在熊猫中,我可以使用 df.T.duplicated 来了解每一列是否不同。

这是我想做的一个例子:

+----+----+----+----+----+
|col1|col2|col3|col4|col5|
+----+----+----+----+----+
| one| one|  AA|  AA| one|
| one| one|  BB|  BB| one|
| 111| 111|  CC|  ZZ| 111|
| two| two|  DD|  EE| two|
+----+----+----+----+----+

col1,2,5的元素相同=>返回True

结果:[True True False False True]或返回3即可(3列相同)。

我已经完成了行比较。如果它不能直接比较每个列,则火花数据帧是否有任何转置方法?

我更喜欢比较每列以直接返回true / false,如果数据非常大(数以千万计的数据),转置数据框将花费更多时间。

示例:

----------+-----+----+----+----+----+----+   
|segment_id| val1|val2|val3|val4|val5|val6|
+----------+-----+----+----+----+----+----+
|         1|  100|   0|   0|   0|   0|   0|
|         2|    0|  50|   0|   0|  20|   0|
|         3|    0|   0|   0|   0|   0|   0|
|         4|    0|   0|   0|   0|   0|   0|
+----------+-----+----+----+----+----+----+

结果:

+----+-----+----+----+----+
|vals|    1|   2|   3|   4|
+----+-----+----+----+----+
|val1|  100|   0|   0|   0|
|val2|    0|  50|   0|   0|
|val3|    0|   0|   0|   0|
|val4|    0|   0|   0|   0|
|val5|    0|  20|   0|   0|
|val6|    0|   0|   0|   0|
+----+-----+----+----+----+

0 个答案:

没有答案