val url = api
val result = scala.io.Source.fromURL(url).mkString
val df = spark.read.json(result).toDF()
在上面的代码中我不能只调用结果。有没有办法将结果转换为数据帧?
答案 0 :(得分:2)
您可以通过多种方式在spark中创建dataFrame。
示例1:
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
val conf = new SparkConf()
.setMaster("local[2]")
.setAppName("SomeApp")
val spark = SparkSession
.builder()
.appName("basic example")
.config(conf)
.getOrCreate()
val df = spark.read.json("/Users/user/Sources/basesample/data.json")
df.show()
spark.close()
来自标准文档: https://spark.apache.org/docs/latest/sql-programming-guide.html
示例2 :以下是以手动方式执行此操作的代码。
我使用json4s从json转换 - >案例类
val sc = new SparkContext(conf)
case class Data(data1:Int, data2:Int)
val json = parse("""{"data1":52,"data2":54}""");
// Convert json string to collection of case classes
val row = json.extract[Data]
val rdd : RDD[Data] = sc.parallelize( Seq(row) )
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val df = sqlContext.createDataFrame( rdd)
sc.stop()