我需要在RDD中存储类型数组。为此,我使用了Hadoop中的ArrayWritable类 :
RichFaces
它有效,但我想确保如果不需要对象将不会被序列化。我想尽可能地留在记忆中。 Spark和Flink声称将数据保存在内存中。 是否是ArrayWritable类的情况?这是存储阵列的有效方法吗? 谢谢!
来自@mattinbits的编辑回答,对于 Spark ,有效的方法是使用 Java数组或 ArrayList (用于动态调整大小)
答案 0 :(得分:0)
在Spark中,java.util.ArrayList
应该可以正常工作。我测试过的Scala中的一个例子:
import org.apache.spark.{SparkContext, SparkConf}
import java.util
case class Foo(val a: Int, val b: util.ArrayList[Int])
val conf = new SparkConf().setMaster("local").setAppName("example")
val sc = new SparkContext(conf)
val arr = new util.ArrayList[Int]()
arr.add(1)
val par = sc.parallelize[Foo](List(Foo(1, arr), Foo(2, arr), Foo(2, arr), Foo(3, arr), Foo(3, arr)))