Как преобразовать в список из многих столбцов данных в Spark?

Знак фунта (#) указывает, чтобы найти привязку на странице. Например, если вы включили это где-то на страницу:

<a name="foo"></a>

или совсем недавно:

<div id="foo">*part of page*</div>

, а затем вы нажимаете ссылку на странице, на которой есть href #foo, он будет привязан к якорю с именем или div с id foo.

Однако, если у вас есть только href #, это приведет к началу страницы.

0
задан Shaido 3 April 2019 в 07:41
поделиться

1 ответ

Во-первых, получите имена столбцов, где есть фактическое значение, а не ноль. Это может быть сделано с помощью функции, такой как:

val notNullColNames = Seq("A", "B", "C", "D").map(c => when(col(c).isNotNull, c))

. Для создания массива значений обычно используется array, однако, это все равно будет возвращать ноль, когда входное значение равно нулю. Вместо этого, одним из решений является использование concat_ws и split для удаления любых нулевых значений:

df.select($"id", split(concat_ws(",", notNullColNames:_*), ",").as("newColumn"))

Для примера ввода это будет выводить:

+---+------------+
| id|   newColumn|
+---+------------+
|  1|      [B, C]|
|  2|[A, B, C, D]|
|  3|         [A]|
+---+------------+
0
ответ дан Shaido 3 April 2019 в 07:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: