web-dev-qa-db-fra.com

Sélectionner des colonnes dans Pyspark Dataframe

Je recherche un moyen de sélectionner les colonnes de mon cadre de données dans pyspark. Pour la première ligne, je sais que je peux utiliser df.first() mais je ne suis pas sûr des colonnes étant donné qu'elles ont elles n'ont pas de nom de colonne.}

J'ai 5 colonnes et je veux parcourir chacune d'entre elles.

+--+---+---+---+---+---+---+
|_1| _2| _3| _4| _5| _6| _7|
+--+---+---+---+---+---+---+
|1 |0.0|0.0|0.0|1.0|0.0|0.0|
|2 |1.0|0.0|0.0|0.0|0.0|0.0|
|3 |0.0|0.0|1.0|0.0|0.0|0.0|
9
Nivi

Essayez quelque chose comme ça:

df.select([c for c in df.columns if c in ['_2','_4','_5']]).show()
20
MaxU

Deux premières colonnes et 5 rangées

 df.select(df.columns[:2]).take(5)
11
Michael West

Utilisez df.schema.names

spark.version
# u'2.2.0'

df = spark.createDataFrame([("foo", 1), ("bar", 2)])
df.show()
# +---+---+ 
# | _1| _2|
# +---+---+
# |foo|  1| 
# |bar|  2|
# +---+---+

df.schema.names
# ['_1', '_2']

for i in df.schema.names:
  # df_new = df.withColumn(i, [do-something])
  print i
# _1
# _2
3
desertnaut

Tout d'abord, votre schéma est créé par erreur lors de l'importation depuis MySQL ou une autre base de données . Vous pouvez utiliser le curseur du dictionnaire pour le modifier 

cursor = conn.cursor(MySQLdb.cursors.DictCursor)
1
Shekhar Koirala