Solución:
En Spark 1.6:
Si está en Python, use la biblioteca de solicitudes para obtener la información y luego simplemente cree un RDD a partir de ella. Debe haber alguna biblioteca similar para Scala (hilo relevante). Entonces solo haz:
json_str="{"executorCores": 2, "kind": "pyspark", "driverMemory": 1000}"
rdd = sc.parallelize([json_str])
json_df = sqlContext.jsonRDD(rdd)
json_df
Código para Scala:
val anotherPeopleRDD = sc.parallelize(
"""{"name":"Yin","address":{"city":"Columbus","state":"Ohio"}}""" :: Nil)
val anotherPeople = sqlContext.read.json(anotherPeopleRDD)
Esto es de: http://spark.apache.org/docs/latest/sql-programming-guide.html#json-datasets
Spark no puede analizar un json arbitrario en un marco de datos, porque json es una estructura jerárquica y el marco de datos es plano. Si su json no es creado por Spark, lo más probable es que no cumpla con la condición “Cada línea debe contener un objeto JSON válido independiente e independiente” y, por lo tanto, deberá analizarse con su código personalizado y luego alimentar al marco de datos como colección de objetos de clase case o Spark sql Rows.
Puedes descargar como:
import scalaj.http._
val response = Http("proto:///path/to/json")
.header("key", "val").method("get")
.execute().asString.body
y luego analice su json como se muestra en esta respuesta. Y luego cree una secuencia de objetos de su clase de caso (digamos seq) y cree un marco de datos como
seq.toDF