PySpark DataFrames - façon d'énumérer sans convertir en Pandas?

J'ai un très gros pyspark.sql.dataframe.DataFrame nommé df.
J'ai besoin d'une certaine manière de l'énumération des enregistrements, ainsi, être en mesure d'accéder à l'enregistrement avec certains index. (ou sélectionner un groupe d'enregistrements avec des indices de gamme)

Dans les pandas, j'ai pu faire juste

indexes=[2,3,6,7] 
df[indexes]

Ici, je veux quelque chose de similaire, (et sans les convertir dataframe de pandas)

Le plus proche que je peux obtenir à l'est:

  • L'énumération de tous les objets dans l'original dataframe par:
    indexes=np.arange(df.count())
    df_indexed=df.withColumn('index', indexes)
    • À la recherche pour les valeurs que j'ai besoin d'aide, où() fonction.

QUESTIONS:

  1. Pourquoi il ne fonctionne pas et comment le faire fonctionner? Comment ajouter une ligne à un dataframe?
  2. Serait-il travailler plus tard pour faire quelque chose comme:
     indexes=[2,3,6,7] 
     df1.where("index in indexes").collect()
  3. Importe quel plus rapide et la plus simple façon de traiter avec elle?

source d'informationauteur Maria Koroliuk