-1
votes

Suppression de la ligne vide du fichier texte à l'aide d'une étincelle

J'ai un fichier de données avec format ci-dessous: le fichier a 10 colonnes. Entre toutes les lignes, il y a un espace.Je devons charger ces données sur la trame de données après omission et imprimer la valeur distincte en fonction de la colonne Type de dernière fois:

exemple fichier de données: xxx

mais le code ci-dessus lance: xxx

Je ne suis pas capable de sortir de l'exception.Unable pour charger ces données dans le cadre de données.


0 commentaires

3 Réponses :


0
votes

J'ai changé et testé votre code comme suit:

  val fileHeader = 
    "name address client_add result_code bytes req_method url user hierarchy_code type"

  val schema= StructType(fileHeader.split(" ").map(field=>StructField(field,StringType,true)))

  val textFileRDD=sparkSession.sparkContext.textFile("src/main/resources/student.txt")

  val rowRDD = textFileRDD.filter(_.trim.length >0).map(_.split(" ")) // Removing empty lines and creating RDD of "clean" data

  val rowrdd1=rowRdd2.map(x => Row(x(0), x(1), x(2), x(3), x(4), x(5) , x(6) , x(7) , x(8), x(9)))

  val squidDF = sparkSession.sqlContext.createDataFrame(rowrdd1, schema)

  squidDF.show

  squidDF.createOrReplaceTempView("data")


1 commentaires

J'ai changé le prédicat dans la méthode Filtre alors il ne considérera donc que les chaînes non vides.



0
votes

@ La solution de Yayati est bonne sauf la vérification de ligne vide et partielle. Sans que vous pouvez rencontrer dans NPE. Ceux-ci sont corrigés ici -

fichier - p> xxx pré>

code - p> xxx pré>

résultat p>

+----+---------+----------+-----------+-----+----------+---+----+--------------+----+
|name|  address|client_add|result_code|bytes|req_method|url|user|hierarchy_code|type|
+----+---------+----------+-----------+-----+----------+---+----+--------------+----+
|debo|bangalore|         3|          4|    5|         6|  7|   8|             9| Yes|
|debo|banaglore|         4|          5|    6|         7|  8|   9|            10| Yes|
|abhi|    Delhi|         6|          7|    9|        10| 99|  99|            00|  No|
+----+---------+----------+-----------+-----+----------+---+----+--------------+----+


0 commentaires

0
votes

Vous pouvez utiliser directement une image de données d'allumage avec l'utilisation de différents modes d'analyse:

mode : par défaut, il est permissive.

Les valeurs possibles sont les suivantes:

permissive : essayez d'analyser toutes les lignes: Les nulls sont insérés pour des jetons manquants et des jetons supplémentaires sont ignorés. < p> Dropmalformé : des lignes de goutte qui ont moins de jetons ou plus que prévu ou des jetons qui ne correspondent pas au schéma.

échec : Abandon avec une exception Si une ligne mal formée est rencontrée.

fichier - xxx

code - xxx

résultat - xxx

Pour plus d'informations sur la lecture des fichiers CSV - https://docs.databricks.com/data/data-sources/read-csv.html


0 commentaires