Spark kryo序列化

Spark中序列化的目的:序列化后数据更小,更便于传输和存储, 但是会耗用更多的cpu资源。

Spark中数据共有两种序列化方式:

  • java :(默认) 兼容性好, 但是慢、较大。
  • Kryo :快, 较小, 但是需要手动地注册用到的类。

kryo的用法 :

 val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("ser_test_app")
      .set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
      .registerKryoClasses(Array(classOf[DataCaseClass]))

    val spark: SparkSession = SparkSession.builder()
      .config(sparkConf)
      .getOrCreate()
    val sc: SparkContext = spark.sparkContext
    
    val data= sc.textFile("file:///d:/weblog.txt").map(x => DataCaseClass(x))
    data.persist(StorageLevel.MEMORY_ONLY_SER)
      .foreach(println(_))




其中, 虽然不注册类程序也不会报错, 但是性能会变得很差。

转载于:https://my.oschina.net/dreamness/blog/3094716

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值