Знак фунта (#
) указывает, чтобы найти привязку на странице. Например, если вы включили это где-то на страницу:
<a name="foo"></a>
или совсем недавно:
<div id="foo">*part of page*</div>
, а затем вы нажимаете ссылку на странице, на которой есть href #foo
, он будет привязан к якорю с именем или div
с id foo
.
Однако, если у вас есть только href #
, это приведет к началу страницы.
Во-первых, получите имена столбцов, где есть фактическое значение, а не ноль. Это может быть сделано с помощью функции, такой как:
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]|
+---+------------+