У меня есть система, в которой компонент A передает sql компоненту B, B затем запускает sql через apache spark и возвращает результат.
В целях отладки я помещаю второй канал связи, где A может передать sql B и запросить и объяснить план.
Код в B выглядит примерно так:
def handleExplain(sql: String, extended: Boolean): String = {
val dataFrame = sparkContext.sql(sql)
dataFrame.explain(extended)
}
Проблема в том, что объяснение не возвращает строку, а просто выводит план объяснения на консоль. Как получить содержимое строки того, что напечатано на консоли? Есть ли другая функция, или мне нужно поднять ее с консоли?