Scala 在 "if block" 内初始化 sc.parallelise 并执行外部循环
Scala initialise sc.parallelise inside "if block" and execute outside loop
我有以下代码:-
case class event(id: String, date: String)
object test {
def main(args: Array[String]) {
var collection = null
if(some_condition){
val a = some_value
val b = value2
val value3 = some_function_calculation_from other_class
val c = value3
val d = value4
collection = sc.parallelize(Seq(event(a,b),event(c,d)))
} else {
collection = sc.parallelize(Seq(event(e,f),event(g,h)))
}
collection.saveToCassandra("db", "table", SomeColumns("id", "date"))
}
}
我想让我的集合对象保存在 cassandra 中,值为 event(a,b) & event(c,d) 的 seq,如果条件失败,它应该是 event(e,f) & event (g,h) 但它将变为空。我哪里出错了?
注意:当没有 if 块时它工作正常,这意味着在一个范围内初始化所有集合定义。
谢谢,
如果您希望根据条件 collection
作为 RDD[event]
,那么您可以将 if else
分配给变量 collection
。
val collection = if (some_condition)
sc.parallelize(Seq(event("a", "b"), event("c", "d")))
else
sc.parallelize(Seq(event("e", "f"), event("g", "h")))
希望对您有所帮助!
我有以下代码:-
case class event(id: String, date: String)
object test {
def main(args: Array[String]) {
var collection = null
if(some_condition){
val a = some_value
val b = value2
val value3 = some_function_calculation_from other_class
val c = value3
val d = value4
collection = sc.parallelize(Seq(event(a,b),event(c,d)))
} else {
collection = sc.parallelize(Seq(event(e,f),event(g,h)))
}
collection.saveToCassandra("db", "table", SomeColumns("id", "date"))
}
}
我想让我的集合对象保存在 cassandra 中,值为 event(a,b) & event(c,d) 的 seq,如果条件失败,它应该是 event(e,f) & event (g,h) 但它将变为空。我哪里出错了?
注意:当没有 if 块时它工作正常,这意味着在一个范围内初始化所有集合定义。
谢谢,
如果您希望根据条件 collection
作为 RDD[event]
,那么您可以将 if else
分配给变量 collection
。
val collection = if (some_condition)
sc.parallelize(Seq(event("a", "b"), event("c", "d")))
else
sc.parallelize(Seq(event("e", "f"), event("g", "h")))
希望对您有所帮助!