如何比较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|
+----+-----+----+----+----+