我正在通过spark-submit运行spark作业并使用其--files参数加载log4j.properties文件。
在我的Spark工作中,我需要获取此参数
object LoggerSparkUsage {
def main(args: Array[String]): Unit = {
//DriverHolder.log.info("unspark")
println("args are....."+args.mkString(" "))
val conf = new SparkConf().setAppName("Simple_Application")//.setMaster("local[4]")
val sc = new SparkContext(conf)
// conf.getExecutorEnv.
val count = sc.parallelize(Array(1, 2, 3)).count()
println("these are files"+conf.get("files"))
LoggerDriver.log.info("log1 for info..")
LoggerDriver.log.info("log2 for infor..")
f2
}
def f2{LoggerDriver.log.info("logs from another function..")}
}
我的火花提交是这样的: /opt/mapr/spark/spark-1.6.1/bin/spark-submit --class" LoggerSparkUsage" --master yarn-client --files src / main / resources / log4j.properties /mapr/cellos-mapr/user/mbazarganigilani/SprkHbase/target/scala-2.10/sprkhbase_2.10-1.0.2.jar
我试图使用这些属性 conf.get("文件&#34)
但它给了我一个例外
任何人都可以给我一个解决方案吗?
答案 0 :(得分:0)
文件的正确密钥是spark.files
:
scala.util.Try(sc.getConf.get("spark.files"))
但要获得工作人员的实际路径,您必须使用SparkFiles
:
org.apache.spark.SparkFiles.get(fileName)
如果还不够,您可以将这些作为应用程序参数传递,并从main
args中检索或使用spark.conf
中的自定义键。