Pyspark show dataframe как таблица с горизонтальной прокруткой в ​​записной книжке ipython

pyspark.sql.DataFrame отображает беспорядочно с DataFrame.show() - перенос строк вместо свитка.

enter image description here

но отображается с pandas.DataFrame.head enter image description here

Я пробовал эти параметры

import IPython
IPython.auto_scroll_threshold = 9999

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
from IPython.display import display

но не повезло. Хотя прокрутка работает, когда используется в редакторе Atom с плагином jupyter:

enter image description here

Ответ 1

это обходной путь

spark_df.limit(5).toPandas().head()

хотя, я не знаю вычислительного бремени этого запроса. Я думаю, что limit() не дорого. исправления приветствуются.

Ответ 2

Я создал ниже li'l функцию, и она отлично работает:

def printDf(sprkDF): 
    newdf = sprkDF.toPandas()
    from IPython.display import display, HTML
    return HTML(newdf.to_html())

вы можете использовать его прямо на своих искровых запросах, если хотите, или на любом искровом кадре данных:

printDf(spark.sql('''
select * from employee
'''))

Ответ 3

Теперь это возможно изначально с Spark 2.4.0, установив для параметра spark.sql.repl.eagerEval.enabled значение True:

enter image description here