Ах, хорошо - отвечаю на часть 2 моего собственного вопроса.Отредактирует, если кто-нибудь ответит на часть 1.
Я могу просто использовать regexp_replace()
для вставки '{'
и '}'
после вызова collect_ws()
Примерно так:
myDF \
.withColumn('MyArr', regexp_replace('MyArr', '\A', '{')) \
.withColumn('MyArr', regexp_replace('MyArr', '\Z', '}'))
РЕДАКТИРОВАТЬ : После тестирования этот подход не является стартовым, поскольку он значительно замедляет время выполнения (массив может потенциально быть огромным, порядка десятков тысяч GUID).