Comment faire de la première ligne comme en-tête lors de la lecture d'un fichier dans PySpark et de la convertir vers les Pandas Dataframe

Je suis à la lecture d'un fichier dans PySpark et formant la rdd. Je puis convertir normal dataframe puis à pandas dataframe. Le problème que je rencontre est qu'il y a en-tête de ligne dans mon fichier d'entrée, et je veux faire ce que l'en-tête de dataframe colonnes, mais elles sont lus dans une rangée supplémentaire et non comme en-tête. Voici mon code actuel:

def extract(line):
    return line


input_file = sc.textFile('file1.txt').zipWithIndex().filter(lambda (line,rownum): rownum>=0).map(lambda (line, rownum): line)

input_data = (input_file
    .map(lambda line: line.split(";"))
    .filter(lambda line: len(line) >=0 )
    .map(extract)) # Map to tuples

df_normal = input_data.toDF()
df= df_normal.toPandas()

Maintenant quand je regarde les df puis la ligne d'en-tête de fichier texte devient la première ligne de dataframe et il y a en-tête supplémentaire dans df avec 0,1,2... comme en-tête. Comment puis-je faire la première ligne comme en-tête?

sans un échantillon de la dataframe de travailler avec, je pense que vous pouvez simplement utiliser df_normal.toPandas('header'=1) . Ou quelle que soit la ligne qui contient l'en-tête que vous voulez
Pourquoi utiliser Étincelle à tous ici? Si l'on suppose que les données s'inscrit (en ignorant les lignes vides) sur une machine locale, il est juste un gaspillage de temps et de ressources.

OriginalL'auteur user2966197 | 2016-01-16