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: p> mais le code ci-dessus lance: p> Je ne suis pas capable de sortir de l'exception.Unable pour charger ces données dans le cadre de données. P > p>
3 Réponses :
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")
J'ai changé le prédicat dans la méthode Code> Filtre Code> alors il ne considérera donc que les chaînes non vides.
@ 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> code - p> 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|
+----+---------+----------+-----------+-----+----------+---+----+--------------+----+
Vous pouvez utiliser directement une image de données d'allumage avec l'utilisation de différents modes d'analyse:
mode strong>: par défaut, il est permissive. p> Les valeurs possibles sont les suivantes: p> fichier - p> code - p> résultat - p> Pour plus d'informations sur la lecture des fichiers CSV - https://docs.databricks.com/data/data-sources/read-csv.html p> p>