verbrauchen Ich brauche einige JSON-Daten von einem Web-Service, der REST-Schnittstellen bietet, um die Daten aus meinem SPARK SQL-Code für die Analyse abzufragen. Ich kann ein JSON lesen, das im BLOB-Speicher gespeichert ist, und es verwenden.Spark SQL: Wie JSON-Daten von einem REST-Service als DataFrame
Ich fragte mich, was ist der beste Weg, um die Daten aus einem REST-Service zu lesen und es wie eine andere DataFrame
zu verwenden.
BTW Ich verwende SPARK 1.6 of Linux cluster on HD insight
, wenn das hilft. Würde mich auch freuen, wenn jemand Code-Snippets für das selbe teilen kann, da ich in der SPARK Umgebung noch sehr neu bin.
ist es ein einzelner JSON Blob, die Sie (verteilen zu Knoten) nach dem Download parallelisieren wollen, oder ist es viele verschiedene JSON-Strings, die Sie lieber direkt in den Knoten herunterladen würden? Wenn es sich um ein einzelnes Blob handelt, wird es wie unter http://spark.apache.org/docs/latest/sql-programming-guide.html#json-datasets beschrieben formatiert. "Jede Zeile muss eine separate, in sich abgeschlossen gültige JSON enthalten Objekt " – Ashish
@Ashish: Dies sind tatsächlich mehrere Dateien, die von meinem Webservice irgendwo in der Größenordnung von 8 bis 10 angezeigt werden und nicht wirklich groß sind. Meistens als Kontext zu den im HDFS gespeicherten Daten für meine Analyse verwendet. Ich habe mir den Link angeschaut, aber alle Beispiele suchen nach den lokalen Dateien, gibt es eine Möglichkeit, sie so zu lesen wie 'val path = "http: //www.examples/src/main/resources? Type = people "' – Kiran
Spark kann einen beliebigen JSON nicht zum Datenframe analysieren, weil JSON eine hierarchische Struktur und ein Datenrahmen als flach ist. Wenn Ihr JSON nicht durch Funken erstellt wird, ist es wahrscheinlich, dass es nicht entspricht "Jede Zeile muss ein separates, eigenständiges gültiges JSON-Objekt enthalten" und muss daher mit Ihrem benutzerdefinierten Code analysiert und dann als Sammlung an Dataframe übergeben werden von Fallklassenobjekten oder Spark-SQL-Zeilen. Eine der Möglichkeiten, um in scala zu analysieren ist in http://stackoverflow.com/questions/37003083/spark-parquet-nested-value-flatten/37005148#37005148 – Ashish