Serialization 使用Kryo和Spark序列化Cassandra表
我试图用ApacheSpark测试Kryo序列化,以测量有序列化和无序列化的执行时间,并将Kryo对象流保存到磁盘,以模拟Spark下的缓存 我设计的测试是将Cassandra表存储在序列化的CassandraRDD对象中 生成CassandraRDD的Scala代码如下所示:Serialization 使用Kryo和Spark序列化Cassandra表,serialization,cassandra,apache-spark,kryo,Serialization,Cassandra,Apache Spark,Kryo,我试图用ApacheSpark测试Kryo序列化,以测量有序列化和无序列化的执行时间,并将Kryo对象流保存到磁盘,以模拟Spark下的缓存 我设计的测试是将Cassandra表存储在序列化的CassandraRDD对象中 生成CassandraRDD的Scala代码如下所示: import com.datastax.spark.connector._ import org.apache.spark.{SparkConf, SparkContext} object SparkCassandra
import com.datastax.spark.connector._
import org.apache.spark.{SparkConf, SparkContext}
object SparkCassandra {
def main(args: Array[String]): Unit ={
val conf = new SparkConf(true).set("spark.cassandra.connection.host","mycassandraip")
conf.set("spark.serializer","org.apache.spark.serializer.KryoSerializer")
val sc = new SparkContext("local","test",conf)
//Access to cassandra table
val kvRDD = sc.cassandraTable("test","kv")
kvRDD.collect().foreach(println)
}
}
这段代码可以工作,但我怀疑kvRDD,即CassandraRDD对象没有被序列化
关于什么可以和不可以用Kryo序列化,有什么规则吗?
我如何在kryo.register注册这个类
如果我尝试使用kryo.register(ClassOf[CassandraRDD])注册,则在尝试执行时会出现以下错误:
Error:(11, 27) class CassandraRDD takes type parameters
kryo.register(classOf[CassandraRDD])
^
请注意,我对Scala和Kryo非常陌生
提前非常感谢请为CassandraRDD系列试一试
kryo.register(classOf[CassandraRDD[Any]])