2016-10-19 3 views
2

Я использую Спарк Scala и Play Framework У меня есть SEQ как этотКак я могу преобразовать Seq в Спарк РДД

//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]] 

Как я могу преобразовать этот seq в Spark RDD. (Я хочу использовать этот RDD для сделать некоторый запрос ... так что я нужен «registerTempTable» и «rdd.sqlContext.sql»

ответ

1

Вы можете использовать sparkContext.parallelize(books). parallelize принимает коллекцию и разбивает ее на РДУ. Вы можете передайте дополнительный параметр, чтобы определить количество разделов, в которые этот seq будет разбит.

+0

Это не сработает. Когда я делаю, например, 'val j = SparkCommons.sc.parallelize (books)' – Mozzer

+0

Тогда j don ' t имеют такие методы, как j.registerTempTable или j.syslContext.sql и т. д. – Mozzer

+1

Где находится переменная 'SparkCommons'? Как создать контекст искры? –

Смежные вопросы