Comment créer un DataFrame à partir d'un fichier texte dans Spark
J'ai un fichier texte sur HDFS et je veux le convertir en un bloc de Données dans Spark.
Je suis à l'aide de l'Étincelle Contexte de charger le fichier et essayez de générer les différentes colonnes à partir de ce fichier.
val myFile = sc.textFile("file.txt")
val myFile1 = myFile.map(x=>x.split(";"))
Après avoir fait cela, je suis en train de l'opération suivante.
myFile1.toDF()
Je suis un des problèmes puisque les éléments dans myFile1 RDD sont maintenant de type tableau.
Comment puis-je résoudre ce problème?
Je vous suggère de modifier la question du titre, afin de représenter la question avec plus de précision.
Pouvez-vous m'aider avec un titre adéquat? J'ai essayé de le garder aussi simple que je le peux.
Pouvez-vous m'aider avec un titre adéquat? J'ai essayé de le garder aussi simple que je le peux.
OriginalL'auteur Rahul | 2016-04-21
Vous devez vous connecter pour publier un commentaire.
Mise à jour - Étincelle de 1,6, vous pouvez simplement utiliser les données csv source:
Vous pouvez également utiliser les options diverses pour contrôler le CSV de l'analyse, par exemple:
Pour Spark version < 1.6:
Le plus simple est d'utiliser spark-csv - l'inclure dans vos dépendances et suivre le README, il permet de définir un séparateur personnalisé (
;
), peut lire CSV en-têtes (si vous en avez), et il est possible de déduire le schéma types (avec le coût d'un contrôle supplémentaire des données).Alternativement, si vous connaissez le schéma, vous pouvez créer un cas de classe qui la représente et de cartographier vos RDD éléments dans les instances de cette classe avant de se transformer en un DataFrame, par exemple:
OriginalL'auteur Tzach Zohar
J'ai donné les différentes façons de créer DataFrame de fichier texte
raw fichier texte
étincelle session sans schéma
étincelle session avec le schéma
à l'aide de sql contexte
OriginalL'auteur Vikas Singh
Si vous souhaitez utiliser le
toDF
méthode, vous devez convertir votreRDD
deArray[String]
dans unRDD
d'une classe de cas. Par exemple, vous avez à faire:OriginalL'auteur mgaido
OriginalL'auteur Vishal
Vous ne serez pas en mesure de le convertir en bloc de données jusqu'à l'utilisation de la conversion implicite.
Après cela seulement, vous pouvez convertir cette trame de données
Ses pas directement mentionné, mais vous pouvez trouver de référence ici .. spark.apache.org/docs/2.3.0/sql-programming-guide.html
OriginalL'auteur Abhijit
Je sais je suis très en retard pour répondre à cela, mais je suis venu avec une réponse différente:
OriginalL'auteur Ankita
Vous pouvez lire un fichier de disposer d'un RDD et ensuite affecter schéma. Deux façons courantes de création de schéma sont soit à l'aide d'un cas ou une catégorie d'objet de Schéma [mes préférences]. Suit la rapide des bouts de code que vous pouvez utiliser.
Classe de cas de l'approche
Schéma Approche
La deuxième est ma préférée, depuis la classe de cas a une limitation de max 22 champs de et ce sera un problème si votre fichier comporte plus de 22 des champs!
OriginalL'auteur