我开始使用Hadoop Spark进行项目。我将在斯卡拉开发。
我从头开始创建项目,我想知道如何处理属性。ScalaSpark中的属性的最佳实践
我来自Java背景,我使用.properties文件并在开始时加载它们。然后我有一个类用于访问我的属性的不同值。
这是Scala中的一个好习惯吗?
尝试了谷歌搜索,但没有任何与此有关的东西。
我开始使用Hadoop Spark进行项目。我将在斯卡拉开发。
我从头开始创建项目,我想知道如何处理属性。ScalaSpark中的属性的最佳实践
我来自Java背景,我使用.properties文件并在开始时加载它们。然后我有一个类用于访问我的属性的不同值。
这是Scala中的一个好习惯吗?
尝试了谷歌搜索,但没有任何与此有关的东西。
在这里,我们做的事:
conf
被复制到System.propertiesconfig-file
用于读取配置文件(使用火花上下文,以便能够从S3/HDFS与自定义代码路径读能够从读取jar资源)withFallback
机制将来自资源和读取文件的默认配置组合在一起。顺序很重要,因为我们希望类型安全使用(2)中的值来覆盖文件中的thoses。如果您正在寻找提供再火花性质有不同的方式可以读取性能在Scala中类似的文件到Java
import scala.io.Source.fromUrl
val reader = fromURL(getClass.getResource("conf/fp.properties")).bufferedReader()
你可以阅读更多关于I/O包在Scala Standard Library I/O
这样做的例如在提交火花作业时提供它们。
希望这有助于。
有三种方法来确定用于火花性能:
Spark Propertis
在SparkConf
original spec:火花属性控制大多数应用程序设置,并且分别为每个应用配置 。这些属性可以直接在SparkConf上设置为 传递给您的SparkContext。
Dynamically Loading Spark Properties
original spec,它避免了硬编码在SparkConf某些配置:
./bin/spark-submit --name “我的应用” --master本地[*] - conf spark.eventLog.enabled = false --conf“spark.executor.extraJavaOptions = -XX:+ PrintGCDetails -XX:+ PrintGCTimeStamps”myApp。罐子
重写spark-defaults.conf
- 默认的Spark属性文件 - original spec
我优先描述特性 - SparkConf
具有最高的优先级,spark-conf
的优先级最低。欲了解更多详情,请查询this post
如果你想存储所有的属性在一个地方,只是你Typesafe Config。 Typesafe Config摆脱了使用输入流来读取文件,它在scala应用程序中被广泛使用。
这是一个聊天或松懈的问题 - 请参阅http://chat.stackoverflow.com/rooms/127924/apache-spark –