Pyspark: afficher une étincelle bloc de données dans un format de table
Je suis en utilisant pyspark de lire un parquet fichier comme ci-dessous:
my_df = sqlContext.read.parquet('hdfs://myPath/myDB.db/myTable/**')
Puis, quand je ne my_df.take(5)
, il va montrer [Row(...)]
, au lieu d'un format de tableau comme lorsque nous utilisons les pandas bloc de données.
Est-il possible d'afficher le bloc de données dans un format de table comme les pandas bloc de données? Merci!
essayez ceci:
Je suis d'erreur: <ipython-entrée-14-d14c0ee9b9fe> <module>() ----> my_df.(5).show() AttributeError: 'liste' de l'objet n'a pas d'attribut "show"
il devrait être
comment est .(5).show() différent de juste .show(5)? Est-il plus rapide?
my_df.take(5).show()
Je suis d'erreur: <ipython-entrée-14-d14c0ee9b9fe> <module>() ----> my_df.(5).show() AttributeError: 'liste' de l'objet n'a pas d'attribut "show"
il devrait être
my_df.show().take(5)
comment est .(5).show() différent de juste .show(5)? Est-il plus rapide?
OriginalL'auteur Edamame | 2016-08-21
Vous devez vous connecter pour publier un commentaire.
La montrer méthode est-ce que vous cherchez.
Par exemple, le suivant dataframe de 3 lignes, je peux imprimer seulement les deux premières lignes comme ceci:
ce qui donne:
pandas
: par exemple pour l'emballage, il ne permet pas de défilement horizontalOriginalL'auteur eddies
Oui: appelez le
toPandas
méthode sur votre dataframe et vous aurez une réelle pandas dataframe !C'est dangereux car cela permettra de recueillir l'ensemble de la trame de données en un seul nœud.
Il doit être souligné que cela va rapidement sortir de la pac de la mémoire traditionnelle Étincelle RDD scénarios.
Il doit être utilisé avec une limite, à l'instar de ce df.limite de(10).toPandas() pour protéger de la OOMs
À l'aide de .toPandas(), j'obtiens l'erreur suivante: Une erreur s'est produite lors d'un appel o86.obtenir. : java.util.NoSuchElementException: spark.sql.l'exécution.les pandas.respectSessionTimeZone Comment puis-je gérer cela?
OriginalL'auteur maxymoo
Comme mentionné par @Brent dans le commentaire de @maxymoo réponse, vous pouvez essayer
pour obtenir un joli tableau dans Jupyter. Mais cela peut prendre un certain temps si vous n'êtes pas la mise en cache de l'étincelle dataframe. Aussi,
.limit()
ne vais pas garder l'ordre d'allumage d'origine dataframe.OriginalL'auteur Louis Yang