Parsen von json in spark
War ich mit json-scala-Bibliothek zum Parsen der json-von einem lokalen Laufwerk in spark job :
val requestJson=JSON.parseFull(Source.fromFile("c:/data/request.json").mkString)
val mainJson=requestJson.get.asInstanceOf[Map[String,Any]].get("Request").get.asInstanceOf[Map[String,Any]]
val currency=mainJson.get("currency").get.asInstanceOf[String]
Aber wenn ich versuche, mit dem gleichen parser, indem Sie auf hdfs Speicherort der Datei das es nicht funktioniert:
val requestJson=JSON.parseFull(Source.fromFile("hdfs://url/user/request.json").mkString)
und gibt mir eine Fehlermeldung:
java.io.FileNotFoundException: hdfs:/localhost/user/request.json (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at scala.io.Source$.fromFile(Source.scala:91)
at scala.io.Source$.fromFile(Source.scala:76)
at scala.io.Source$.fromFile(Source.scala:54)
... 128 elided
Wie kann ich die Json verwenden.parseFull Bibliothek, um Daten aus dem hdfs-Datei Speicherort ?
Dank
Sie sollten` auf` Lage wie dieser
ja, ich habe versucht, die hdfs-Pfad zu Quelle.fromFile api, aber es funktioniert nicht
Könnten Sie in der Lage sein, um post-error-log ?
java.io.FileNotFoundException: hdfs:/hdfsurl/user/request.json (Keine solche Datei oder Verzeichnis) auf java.io.FileInputStream.open0(Native Method) bei java.io.FileInputStream.open(FileInputStream.java:195) bei java.io.FileInputStream.<init > (FileInputStream.java:138) at scala.io.Source$.fromFile(Quelle.scala:91) in der scala.io.Source$.fromFile(Quelle.scala:76) in der scala.io.Source$.fromFile(Quelle.scala:54) ... 128 erstellte
hdfs://cluster_name/path/to/file'
oder geben Sie einfach die Verzeichnis-Namen wie /path/to/file/
. Plz versuchen Sie es und lassen Sie mich wissen, ich werde ans entsprechend.ja, ich habe versucht, die hdfs-Pfad zu Quelle.fromFile api, aber es funktioniert nicht
Könnten Sie in der Lage sein, um post-error-log ?
java.io.FileNotFoundException: hdfs:/hdfsurl/user/request.json (Keine solche Datei oder Verzeichnis) auf java.io.FileInputStream.open0(Native Method) bei java.io.FileInputStream.open(FileInputStream.java:195) bei java.io.FileInputStream.<init > (FileInputStream.java:138) at scala.io.Source$.fromFile(Quelle.scala:91) in der scala.io.Source$.fromFile(Quelle.scala:76) in der scala.io.Source$.fromFile(Quelle.scala:54) ... 128 erstellte
InformationsquelleAutor baiduXiu | 2017-01-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funke hat eine eingebaute Unterstützung für JSON-Dokumente analysieren, die in
spark-sql_${scala.version}
jar.In Spark 2.0+ :
mit
df
Objekt, das Sie tun können, alle unterstützten SQL-Operationen auf, und es ist die Verarbeitung der Daten wird verteilt werden zwischen den Knoten in der Erwägung, dassrequestJson
berechnet werden sollen im einzelnen Maschine nur.
Maven-Abhängigkeiten
wir können den Arbeitnehmer ein, indem Sie ändern den code wie
master("local[1]")
. Als Sie mitlocal
Modus der Arbeiter-und-Treiber werden in der gleichen Maschine.Sie können
df.collect()
um gesamte Daten zu Fahrer.die job-Analyse ist eine kleine Datei, und dann ein größeres Parkett und Eintritt in die größere Datei mit der kleineren Datei ,kleinere Datei nicht brauchen, um ausführen die verteilte code, den ich meinte .der Meister sollte noch ausführen, die auf alle Kerne, avaialable da zu verarbeiten hat große Parkett-Datei
Dann müssen Sie zum laden der json-Datei mit HDFS-api die Datei befindet sich im hdfs. Es ist in Ordnung, laden Sie die Daten sammeln und an die Fahrer. Wie die Datei ist klein, es wird eine partition anzulegen nur.
InformationsquelleAutor mrsrinivas
Es ist viel mehr einfach in spark 2.0
InformationsquelleAutor Madhu Kiran Seelam