Spark(scala):将JSON字符串转换为数据帧



我希望将此 api 的结果转换为数据帧

val url = api
val result = scala.io.Source.fromURL(url).mkString
val df = spark.read.json(result).toDF()

在上面的代码中,我不能只调用结果。有什么方法可以将结果转换为数据帧吗?

您可以通过

多种方式在 Spark 中创建数据帧。

示例 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 -> case 类进行转换

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()

相关内容

  • 没有找到相关文章

最新更新