【问题标题】:How can i convert a Seq in a Spark Rdd如何在 Spark Rdd 中转换 Seq
【发布时间】:2016-10-19 23:14:15
【问题描述】:

我正在使用 Spark Scala 和 Play 框架 我有一个这样的序列

//a sequence of Book objects
val books:[Seq[Book]]

我用 json 文件中的格式方法填充:

implicit val bookFormat: Format[Libri] = {
   ((JsPath \ "City").format[String] and
    (JsPath \ "GEN").format[Int] and
    (JsPath \ "SER").format[Int]    
    ) (Libri.apply , unlift(Libri.unapply)) }

val books = Json.parse(JsonString).as[Seq[Libri]]

如何在 Spark RDD 中转换此序列。 (我想用这个 rdd 进行一些查询......所以我需要“registerTempTable”和“rdd.sqlContext.sql”

【问题讨论】:

    标签: scala apache-spark playframework


    【解决方案1】:

    您可以使用sparkContext.parallelize(books)parallelize 获取一个集合并将其拆分为 RDD。您可以传递一个附加参数来定义此 seq 将被拆分到的分区数。

    【讨论】:

    • 它不起作用。当我制作例如val j = SparkCommons.sc.parallelize(books)
    • 那么 j 没有 j.registerTempTable 或 j.sqlContext.sql 等方法
    • SparkCommons 变量来自哪里?如何创建火花上下文?
    • object SparkCommons { //build the SparkConf object at once lazy val conf = { new SparkConf(false) .setMaster("local[*]") .setAppName("play demo") .set("spark.logConf", "true") } lazy val sc = SparkContext.getOrCreate(conf) lazy val sqlContext = new SQLContext(sc) }
    猜你喜欢
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 2016-06-29
    • 1970-01-01
    • 2015-11-20
    • 2018-01-25
    • 2016-06-23
    相关资源
    最近更新 更多