Как применить операцию XNOR к строкам из двух фреймов данных - PullRequest
0 голосов
/ 10 декабря 2018

Я читаю документацию уже несколько часов и чувствую, что подхожу к проблеме с неправильным складом ума.

У меня есть две таблицы в HIVE, которые я читаю с (spark.table(table_A)) с тем же количеством иТип столбцов, но с разным происхождением, поэтому их данные разные.Обе таблицы отражают флаги, которые показывают, выполняется ли условие.По крайней мере, существует около 20 столбцов, и они могут увеличиться в будущем.

Если первая строка таблицы table_A будет иметь значение 0 0 1 1 0 table_B может быть 0 1 0 1 0, Я бы хотел, чтобы результат былрезультат XNOR, сравнивая позиции, так: 1 0 0 1 1, так как он имеет одинаковые значения в первой, четвертой и пятой позициях

Итак, я подумал об операции XNOR, когда еслиоба значения совпадают, затем возвращается 1, а в противном случае 0.

Я столкнулся с рядом проблем, одной из которых является объем моих данных (сейчас я работаю с выборкой за 1 неделю ион уже на отметке 300 МБ), поэтому я работаю с pyspark и избегаю панд, поскольку он обычно не помещается в памяти и / или сильно отстает от операции.

Подводя итог, у меня есть два объектатипа pyspark.sql.dataframe.DataFrame, у каждой есть одна из таблиц, и пока лучшее, что у меня есть, это примерно так:

df_bitwise = df_flags_A.flag_column_A.bitwiseXOR(df_flags_B.flag_columns_B)

Но, к сожалению, это возвращает pyspark.sql.column.Column, и яне знаю, как прочитать этот результат, и я не знаю, чтобы построитьДа, с этим (с кадром данных) (я бы хотел, чтобы конечный результат был примерно в 20 раз вышеупомянутой операцией, по одному для каждого столбца, каждый из которых формировал столбец в кадре данных).

Что я делаю неправильно, потому что чувствую, чтоэто не правильный подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...