Как я могу создать несколько строк на основе значения одного столбца в SQL?

#sql #apache-spark #apache-spark-sql

Вопрос:

У меня в таблице есть столбец типа string, где несколько значений разделены оператором pipe. Например, вот так,

 Value1|Value2|Value3
 

Теперь я хочу, чтобы у меня был запрос, который покажет три строки для этой строки. В основном что-то похожее на концепцию взрыва в кадрах данных.

Обратите внимание, что я использую Spark SQL. И я хочу добиться этого с помощью SQL, а не фреймов данных.

Ответ №1:

Я заставил его работать, используя следующий запрос.

 select t.*, explode(split(values, "\|")) as value
from table t
 

\| здесь также можно заменить на [|] . Простое указание | не работает.