Захват результата объяснения () в pyspark - PullRequest
0 голосов
/ 10 января 2019

В писпарке, работает:

sdf = sqlContext.sql("""SELECT * FROM t1 JOIN t2 on t1.c1 = t2.c1 """)

и затем:

sdf.explain(extended=True)

печатает логический и физический планы выполнения запроса.

Мой вопрос: Как записать вывод в переменную вместо его печати?

v = sdf.explain(extended=True) естественно, не работает

1 Ответ

0 голосов
/ 10 января 2019

Если вы посмотрите на исходный код explain, вы увидите, что:

def explain(self, extended=False):
    if extended:
        print(self._jdf.queryExecution().toString())
    else:
        print(self._jdf.queryExecution().simpleString())

Поэтому, если вы хотите получить план объяснения напрямую, просто используйте метод _jdf.queryExecution() на вашем фрейме данных:

v = sdf._jdf.queryExecution().toString()  # or .simpleString()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...