Comment faire pour lire tout le fichier dans une chaîne
Je veux lire json ou xml fichier dans pyspark.lf mon fichier est divisé en plusieurs ligne dans
rdd= sc.textFIle(json or xml)
Entrée
{
" employees":
[
{
"firstName":"John",
"lastName":"Doe"
},
{
"firstName":"Anna"
]
}
D'entrée est réparti sur plusieurs lignes.
Sortie Attendue {"employees:[{"firstName:"John",......]}
Comment obtenir le dossier complet en une seule ligne à l'aide de pyspark?
S'il vous plaît aidez-moi je suis nouveau à l'étincelle.
l'espace n'a pas d'importance, vraiment, il est là uniquement pour des fins d'affichage. json avec des sauts de ligne/indentation est encore json...
Comment faire pour ajouter tous penser une seule chaîne
Comment faire pour ajouter pense que dans une seule ligne(string), en supprimant les espaces
Voulez-vous l'ensemble de la RDD dans une chaîne ou voulez-vous vous voulez que tout d'un seul disque?
Je veux que vous souhaitez tout d'un seul enregistrement
Comment faire pour ajouter tous penser une seule chaîne
Comment faire pour ajouter pense que dans une seule ligne(string), en supprimant les espaces
Voulez-vous l'ensemble de la RDD dans une chaîne ou voulez-vous vous voulez que tout d'un seul disque?
Je veux que vous souhaitez tout d'un seul enregistrement
OriginalL'auteur Kumar | 2015-05-25
Vous devez vous connecter pour publier un commentaire.
Si vos données n'est pas formé sur une seule ligne comme
textFile
attend, puis utilisezwholeTextFile
. Cela vous donnera l'ensemble de la chose, de sorte que vous pouvez convertir en n'importe quel format que vous souhaitez.OriginalL'auteur Justin Pihony
Il y a 3 façons (j'ai inventé le 3ème, les deux premiers sont standard intégré Étincelle fonctions), les solutions sont ici dans un PySpark:
texte, wholeTextFile, et une étiquette fichier texte (clé = fichier, valeur = 1 ligne à partir d'un fichier. C'est une sorte de mix entre les deux méthodes pour analyser les fichiers).
1.) texte
d'entrée:
rdd = sc.textFile('/home/folder_with_text_files/input_file')
de sortie: tableau contenant 1 ligne de fichier comme chaque entrée ie. [line1, line2, ...]
2.) wholeTextFiles
d'entrée:
rdd = sc.wholeTextFiles('/home/folder_with_text_files/*')
de sortie: tableau de n-uplets, le premier élément est la "clé" avec le chemin d'accès, le deuxième élément contient 1 fichier intégralité du contenu de ie.
[(u'file:/home/folder_with_text_files/', u'file1_contents'), (u'file:/home/folder_with_text_files/', file2_contents), ...]
3.) "Étiqueté" fichiertexte
d'entrée:
de sortie: tableau avec pour chacun un n-uplet en utilisant le nom de fichier en tant que clé avec la valeur = chaque ligne de fichier. (Techniquement, en utilisant cette méthode, vous pouvez également utiliser une autre clé en plus de la réelle chemin du fichier nom - peut-être un hachage de la représentation à enregistrer sur la mémoire). c'est à dire.
Vous pouvez également recombiner soit comme une liste de lignes:
Spark_Full.groupByKey().map(lambda x: (x[0], list(x[1]))).collect()
Ou se recombiner ensemble de fichiers en un seul chaînes (dans cet exemple, le résultat est le même que ce que vous obtenez à partir de wholeTextFiles, mais avec la chaîne "fichier:" dépouillé de la filepathing.):
Spark_Full.groupByKey().map(lambda x: (x[0], ' '.join(list(x[1])))).collect()
OriginalL'auteur abby sobh
C'est de cette façon que vous feriez dans scala
OriginalL'auteur Animesh Raj Jha
"Comment lire ensemble [SF] fichier dans une chaîne de caractères [Spark, à utiliser comme sql]":
par exemple
OriginalL'auteur conner.xyz