Comment prendre une ligne au hasard à partir d'un PySpark DataFrame?
Comment puis-je obtenir une ligne au hasard à partir d'un PySpark DataFrame? Je ne vois que la méthode sample()
qui ne prend qu'une fraction comme paramètre. La définition de cette fraction de 1/numberOfRows
conduit à des résultats aléatoires, où, parfois, je ne vais pas entrer n'importe quelle ligne.
Sur RRD
il existe une méthode takeSample()
qui prend comme paramètre le nombre d'éléments que vous voulez l'échantillon à contenir. Je comprends que cela peut être lente, comme vous l'avez de compter chaque partition, mais est-il un moyen d'obtenir quelque chose comme ceci sur un DataFrame?
OriginalL'auteur DanT | 2015-11-30
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement appeler
takeSample
sur unRDD
:Si vous ne voulez pas venir vous pouvez simplement prendre une fraction plus importante et limite:
Ne pas passer une
seed
, et vous devriez obtenir un autre DataFrame à chaque fois.Astuce sympa, @LateCoder! (Spark 2.3.1, en gardant les graines=Aucun ne semble fonctionner pour df.rdd.takeSample, pas de df.de l'échantillon.)
OriginalL'auteur zero323