kryo在spark中的使用 (scala)

2021-10-01 03:26:52 字數 1086 閱讀 8057

package com.shufang.spark_rdd

import com.esotericsoftware.kryo.kryo

import org.apache.spark.rdd.rdd

import org.apache.spark.serializer.kryoregistrator

import org.apache.spark.

import scala.collection.mutable.arraybuffer

import scala.util.random

/** * kryo序列化

* 1.可以在spark-default.conf指定 -> spark.serializer org.apache.spark.serializer.kryoserializer

* 2.可以通過命令列spark-submit --conf "spark.serializer" = "org.apache.spark.serializer.kryoserializer"指定

* 3.可以在**中通過 new sparkconf().set("spark.serializer","org.apache.spark.serializer.kryoserializer")指定

* .set("spark.kryo.registrationrequired ","true")

* 如果需要序列化的物件很大、需要指定 spark.kryoserializer.buffer = 64k或者更大一些

* 優先順序 : 2 > 3 > 1

* * 【需要參考詳細文件的話,請上spark的官網!tuning 調優文件】

*/object testkryo

val prdd = sc.parallelize(peoples, 6)

println(prdd.collect().mkstring("\n"))

sc.stop()

}}class people

/* 方式四

*/class mykryoregist extends kryoregistrator

}

在Spark中盡量少使用GroupByKey函式

為什麼建議盡量在spark 中少用groupbykey,讓我們看一下使用兩種不同的方式去計算單詞的個數,第一種方式使用reducebykey 另外一種方式使用groupbykey,如下 01 user 過往記憶 02 date 2015 05 18 03 time 下午22 26 06 過往記憶部落...

在Spark中使用IPython Notebook

ipython notebook現已更名為jupyter notebook,是一種互動式的筆記本,是可以用來重建和分享包含動態 等式 視覺化和解釋文字的文件的web程式。spark提供了python直譯器pyspark,可以通過ipython notebook將spark的pyspark以筆記本這種...

Spark中Accumulator的使用

accumulator簡介 accumulator是spark提供的累加器,顧名思義,該變數只能夠增加。只有driver能獲取到accumulator的值 使用value方法 task只能對其做增加操作 使用 你也可以在為accumulator命名 不支援python 這樣就會在spark web ...