rak*_*ake 17 serialization scala kryo apache-spark
在Spark中,有3种主要方法可以指定SparkConf
用于创建的选项SparkContext
:
spark.driver.memory 4g
spark-shell --driver-memory 4g ...
SparkConf
在使用它来创建实例之前配置实例SparkContext
:
sparkConf.set( "spark.driver.memory", "4g" )
但是,在使用时spark-shell
,在获得shell提示符时,已经在名为的变量中为您创建了SparkContext sc
.使用spark-shell时,如果在您有机会执行任何Scala语句之前已经创建了SparkContext,那么如何使用上面列表中的选项#3来设置配置选项?
特别是,我正在尝试使用Kyro序列化和GraphX.在GraphX中使用Kryo的规定方法是在自定义SparkConf
实例时执行以下Scala语句:
GraphXUtils.registerKryoClasses( sparkConf )
Run Code Online (Sandbox Code Playgroud)
如何在跑步时完成此操作spark-shell
?
zer*_*323 41
Spark 2.0+
您应该能够使用SparkSession.conf.set
方法在运行时设置一些配置选项,但它主要限于SQL配置.
Spark <2.0
您可以简单地停止现有上下文并创建一个新上下文:
import org.apache.spark.{SparkContext, SparkConf}
sc.stop()
val conf = new SparkConf().set("spark.executor.memory", "4g")
val sc = new SparkContext(conf)
Run Code Online (Sandbox Code Playgroud)
正如您可以在官方文档中阅读:
一旦SparkConf对象传递给Spark,它就会被克隆,用户不能再修改它.Spark不支持在运行时修改配置.
因此,您可以看到停止上下文,它是shell启动后唯一适用的选项.
您始终可以使用配置文件或--conf
参数来spark-shell
设置将用作默认上下文的必需参数.如果是Kryo你应该看看:
spark.kryo.classesToRegister
spark.kryo.registrator
归档时间: |
|
查看次数: |
35983 次 |
最近记录: |