私はアルゴリズムを実行し、logicおよびnumber suffixという名前の列を多数取得しました。coalesce
を実行する必要がありますが、方法がわかりません異なる列数でcoalesce
を適用します。
例:
|id|logic_01|logic_02|logic_03|
|1 | null |a |null |
|2 | null |b |null |
|3 | c | null |null |
|4 | null | null |d |
応答:
|id|logic|
|1 | a |
|2 | b |
|3 | c |
|4 | d |
もう一つの例:
|id|logic_01|logic_02|logic_03|logic_04|
|1 | null |a |null |null |
|2 | null | null |null |b |
|3 | c | null |null |null |
|4 | null | null |d |null |
応答:
|id|logic|
|1 | a |
|2 | b |
|3 | c |
|4 | d |
ご協力いただきありがとうございます。
最初に、coalesce
で使用するすべての列を見つけます。
val cols = df.columns.filter(_.startsWith("logic")).map(col(_))
次に、実際のcoalesce
を実行します。
df.select($"id", coalesce(cols: _*).as("logic"))