Sub*_*ian 5 apache-spark pyspark
我有一个独立的python脚本,可以SparkSession
通过调用以下代码行来创建一个,并且可以看到它按照spark-defaults.conf
文件中所述完美地配置了spark会话。
spark = SparkSession.builder.appName("Tester").enableHiveSupport().getOrCreate()
Run Code Online (Sandbox Code Playgroud)
如果要作为参数传递,则包含另一个要使用的火花配置而不是的文件spark-default.conf
,如何在创建SparkSession
?时指定呢?
我可以看到可以传递一个SparkConf
对象,但是有没有一种方法可以从包含所有配置的文件中自动创建一个对象呢?
我是否必须手动解析输入文件并手动设置适当的配置?
如果你不尽力而为,spark-submit
那就是压倒一切的SPARK_CONF_DIR
。为每个配置集创建单独的目录:
$ configs tree \n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 conf1\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 docker.properties\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 fairscheduler.xml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 log4j.properties\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 metrics.properties\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 spark-defaults.conf\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 spark-defaults.conf.template\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 spark-env.sh\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 conf2\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 docker.properties\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 fairscheduler.xml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 log4j.properties\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 metrics.properties\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 spark-defaults.conf\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 spark-defaults.conf.template\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 spark-env.sh\n
Run Code Online (Sandbox Code Playgroud)\n\n并在初始化任何 JVM 相关对象之前设置环境变量:
\n\nimport os\nfrom pyspark.sql import SparkSession\n\nos.environ["SPARK_CONF_DIR"] = "/path/to/configs/conf1"\nspark = SparkSession.builder.getOrCreate()\n
Run Code Online (Sandbox Code Playgroud)\n\n或者
\n\nimport os\nfrom pyspark.sql import SparkSession\n\nos.environ["SPARK_CONF_DIR"] = "/path/to/configs/conf2"\nspark = SparkSession.builder.getOrCreate()\n
Run Code Online (Sandbox Code Playgroud)\n\n这是解决方法,在复杂的场景中可能不起作用。
\n 归档时间: |
|
查看次数: |
1124 次 |
最近记录: |