web-dev-qa-db-fra.com

Pyspark: affiche un cadre de données d'étincelle sous forme de tableau

J'utilise pyspark pour lire un fichier de parquet comme ci-dessous:

my_df = sqlContext.read.parquet('hdfs://myPath/myDB.db/myTable/**')

Ensuite, lorsque je fais my_df.take(5), il affichera [Row(...)], au lieu d’un format de tableau comme lorsque nous utilisons le bloc de données pandas.

Est-il possible d'afficher le bloc de données dans un format de tableau comme un bloc de données de pandas? Merci!

12
Edamame

La méthode show fait ce que vous cherchez.

Par exemple, étant donné le cadre de données suivant de 3 lignes, je ne peux imprimer que les deux premières lignes comme ceci:

df = sqlContext.createDataFrame([("foo", 1), ("bar", 2), ("baz", 3)], ('k', 'v'))
df.show(n=2)

qui donne:

+---+---+
|  k|  v|
+---+---+
|foo|  1|
|bar|  2|
+---+---+
only showing top 2 rows
20
eddies

Oui: appelez la méthode toPandas sur votre base de données et vous obtiendrez une base de données actuelle pandas!

4
maxymoo

Comme mentionné par @Brent dans le commentaire de la réponse de @ maxymoo, vous pouvez essayer 

df.limit(10).toPandas()

obtenir une table plus jolie à Jupyter. Toutefois, l’exécution peut prendre un certain temps si vous ne mettez pas en cache le fichier de données spark. De plus, .limit() ne conservera pas l'ordre du cadre de données d'étincelle d'origine.

1
Louis Yang