需要在SparkConf对象中显式地设置deployMode属性,而不是通过命令行参数的方式指定。
时间: 2024-03-09 19:47:19 浏览: 112
Python、argparse和命令行参数
5星 · 资源好评率100%
是的,你理解的完全正确。在pyspark中,设置deploy-mode为cluster模式时,需要在SparkConf对象中显式地设置deployMode属性,而不是通过命令行参数的方式指定。因为在pyspark中,Spark Submit命令不是通过命令行的方式启动应用程序的,而是通过编写pyspark代码来启动应用程序的。因此,需要在代码中显式地设置deployMode属性。
以下是一个修改后的例子,其中设置了deployMode属性:
```python
from pyspark import SparkConf, SparkContext
conf = SparkConf().setAppName("MyApp").setMaster("spark://master:7077").set("spark.submit.deployMode", "cluster")
sc = SparkContext(conf=conf)
lines = sc.textFile("hdfs://data.txt")
words = lines.flatMap(lambda line: line.split(" "))
wordCounts = words.map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b)
for wc in wordCounts.collect():
print(wc)
sc.stop()
```
在这个例子中,我们在SparkConf对象中显式地设置了spark.submit.deployMode属性,将其设置为cluster模式。这样,我们就可以在pyspark代码中指定deploy-mode为cluster模式了。
阅读全文