【发布时间】:2023-03-16 11:42:01
【问题描述】:
所以,我有一个名为 application.properties 的类型安全配置文件,其中包含某些值,例如:
dev.execution.mode = local
dev.input.base.dir = /Users/debaprc/Documents/QualityCheck/Data
dev.schema.lis = asin StringType,subs_activity_date DateType,marketplace_id DecimalType
我在我的 Spark 代码中将这些值用作字符串,例如:
def main(args: Array[String]): Unit = {
val props = ConfigFactory.load()
val envProps = props.getConfig("dev")
val spark = SparkSession.builder.appName("DataQualityCheckSession")
.config("spark.master", envProps.getString("execution.mode"))
.getOrCreate()
现在我在我的 spark 代码中定义了某些函数(func1、func2 等...)。我想在我的application.properties 文件中指定要调用的函数以及相应的参数。像这样的:
dev.functions.lis = func1,func2,func2,func3
dev.func1.arg1.lis = arg1,arg2
dev.func2.arg1.lis = arg3,arg4,arg5
dev.func2.arg2.lis = arg6,arg7,arg8
dev.func3.arg1.lis = arg9,arg10,arg11,arg12
现在,一旦我指定了这些,我应该在 Spark 中做什么,以使用提供的参数调用函数?还是我需要以不同的方式指定函数和参数?
【问题讨论】:
-
我怀疑这是否可能,那将是一个糟糕的主意
-
@cchantep 你会怎么做才能实现这个目标?
标签: scala function apache-spark config typesafe-config