web-dev-qa-db-fra.com

pyspark affiche la trame de données sous forme de tableau avec défilement horizontal dans le bloc-notes ipython

un pyspark.sql.DataFrame s'affiche en désordre avec DataFrame.show() - des lignes envelopper au lieu d'un défilement.

enter image description here

mais s'affiche avec pandas.DataFrame.headenter image description here

J'ai essayé ces options

import IPython
IPython.auto_scroll_threshold = 9999

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

mais pas de chance. Bien que le défilement fonctionne lorsqu'il est utilisé dans l'éditeur Atom avec le plugin jupyter:

enter image description here

15
muon

c'est une solution de contournement

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

bien que je ne connaisse pas la charge de calcul de cette requête. Je pense que limit() n'est pas cher. corrections bienvenues.

15
muon

J'ai créé ci-dessous la fonction li'l et cela fonctionne très bien:

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

vous pouvez l'utiliser directement sur vos requêtes spark si vous le souhaitez, ou sur n'importe quelle trame de données spark:

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