Как сравнить каждый столбец в кадре данных искры?
В пандах я могу использовать 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 одинаковых столбца).
Я уже закончил сравнение строк. если он не может сравнивать каждый столбец напрямую, есть ли способ для транспонирования спарк-кадра?
Я предпочитаю сравнивать каждый столбец, чтобы он возвращал истину / ложь напрямую, транспонировать фрейм данных было бы тратить больше времени, если данные очень большие (десятки миллионов данных).
Пример:
----------+-----+----+----+----+----+----+
|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|
+----+-----+----+----+----+