Spark如何解析字符串中的系统属性(没有字符串插值)?

rog*_*one 1 scala apache-spark apache-spark-sql

我在这个博客中看到了以下片段

val warehouseLocation = "file:${system:user.dir}/spark-warehouse"
val spark = SparkSession
   .builder()
   .appName("SparkSessionZipsExample")
   .config("spark.sql.warehouse.dir", warehouseLocation)
   .enableHiveSupport()
   .getOrCreate()
Run Code Online (Sandbox Code Playgroud)

如何user.dir在warehouseLocation值中替换系统属性.不应该是字符串s"file:${System.getProperty("user.dir")}/spark-warehouse"

che*_*ohi 5

是的,file:${system:user.dir}/spark-warehouse等于 s"file:${System.getProperty("user.dir")}/spark-warehouse".

Spark中,它自己实现了替换,并从env(System.getEnv),system(System.getProperty)前缀自定义配置中绑定了read config provider.