Побитовое ИЛИ выбирает столбцы в кадре данных Spark - PullRequest
0 голосов
/ 22 марта 2019

У меня есть искровой фрейм данных dist со следующей схемой:

+-----+-----+-----+-----+-----+
| id1 | id2 | _c1 | _c2 | _c3 |
+-----+-----+-----+-----+-----+
| int | int | bin | bin | bin |
+-----+-----+-----+-----+-----+

bin - двоичный 0/1

Другая переменная X сследующая схема:

+-----+-----+-----+-----+
| id  | _c1 | _c2 | _c3 |
+-----+-----+-----+-----+
| int | bin | bin | bin |
+-----+-----+-----+-----+

Это то, что я намеревался сделать:

int count[]
int i=0
for each row r in X {
cols <- list of columns _ci, where r._ci=1              // step-1
df1 <- select cols from dist                           // step-2
df2 <- BITWISE_OR all columns in df1                  // step-3
count[i++] <- count all rows in df2 whose value is 1 // step-4
}

Я все еще могу понять, как шаг 1 и шаг 2, я не уверен, каквыполнить шаг 3 и шаг 4.И есть ли какой-нибудь элегантный способ сделать вышеупомянутый псевдокод эффективным способом, используя spark.

Примечание: Количество столбцов (с именем, например _ci) в dist и X может иметь переменное число.(например: id, _c1, _c2, ....., _cn).Было бы очень полезно, если бы решение не относилось к конкретному номеру столбца.

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