Prendre la n lignes à partir d'une étincelle dataframe et passer à toPandas()
J'ai ce code:
l = [('Alice', 1),('Jim',2),('Sandra',3)]
df = sqlContext.createDataFrame(l, ['name', 'age'])
df.withColumn('age2', df.age + 2).toPandas()
Fonctionne très bien, fait ce qu'il doit. Supposons que si je ne veux afficher que les n premières lignes, et ensuite appeler toPandas()
pour retourner une pandas dataframe. Comment dois-je faire? Je ne peux pas appeler take(n)
parce que ce n'est pas le retour d'un dataframe et donc je ne peux pas passer à toPandas()
.
Donc, pour le dire d'une autre manière, comment puis-je prendre les n premières lignes d'un dataframe et appel toPandas()
sur le dataframe? Peut pense pas que c'est difficile, mais je ne peux pas le comprendre.
Je suis en utilisant Étincelle 1.6.0.
OriginalL'auteur jamiet | 2016-11-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
limit(n)
fonction:Ou:
OriginalL'auteur Neo
Vous pourriez obtenir les premières lignes de l'Étincelle DataFrame avec tête et ensuite créer des Pandas DataFrame:
head()
etlimit()
?de retour n premières lignes comme
take
, etlimit
les limites entraîné une Étincelle Dataframe à un nombre spécifié. Probablement, dans ce cas,limit
est plus approprié.la différence entre
limit
ethead
ah, facile. Donc
limit()
est une transformation,head()
est une action. Merci Anton.OriginalL'auteur Anton Protopopov