如何在pyspark中设置拆分和减速器的数量

我想在amazon EMR实例上运行pyspark以从dynamodb读取数据,并想知道如何在代码中设置拆分和工人数量?如何在pyspark中设置拆分和减速器的数量

我遵循以下两个文档中的说明来提供当前连接到dynamoDB并读取数据的代码。 connecting to dynamoDB from pyspark 和Pyspark documentation

from pyspark.context import SparkContext 

sc = SparkContext.getOrCreate()

conf = {"dynamodb.servicename": "dynamodb", "dynamodb.input.tableName":

"Table1", "dynamodb.endpoint": "https://dynamodb.us-east-

1.amazonaws.com", "dynamodb.regionid":"us-east-1",

"mapred.input.format.class":

"org.apache.hadoop.dynamodb.read.DynamoDBInputFormat",

"mapred.output.format.class":

"org.apache.hadoop.dynamodb.write.DynamoDBOutputFormat"

orders = sc.hadoopRDD(inputFormatClass="org.apache.hadoop.dynamodb.read.DynamoDBInputFormat",

keyClass="org.apache.hadoop.io.Text",

valueClass="org.apache.hadoop.dynamodb.DynamoDBItemWritable", conf=conf)

我试图改变实例和SparkConf类并行数值,但不知道如何将影响SparkContext变量

SparkConf().set('spark.executor.instances','4') 

SparkConf().set('spark.default.parallelism', '128')

设置分裂和减速器,但它似乎没有改变它。

回答:

我通常会改变SparkConf的方法是这样的:

from pyspark import SparkContext 

from pyspark import SparkConf

sconf = SparkConf()

sconf.set("spark.default.parallelism", 200)

sc = SparkContext(conf = sconf)

回答:

我试图改变实例的SparkConf类的价值观和并行性,但不知道如何将影响SparkContext变量

除非SparkConf对象中的SparkContext

conf = SparkConf() \ 

.set('spark.executor.instances','4') \

.set('spark.default.parallelism', '128')

sc = SparkContext(conf=conf)

initalization获得通过

他们不会有配置。如果现有的上下文是获取与getOrCreate

sc = SparkContext() 

...

sc = SparkContext.getOrCreate(conf=conf)

只有一些(不是default.parallelism)将被应用。

想知道如何设置分割数

对于RDD输入使用Hadoop配置(mapred.min.split.size):, Number of Partitions of Spark Dataframe和Why does partition parameter of SparkContext.textFile not take effect?

以上是 如何在pyspark中设置拆分和减速器的数量 的全部内容, 来源链接: utcz.com/qa/257910.html

回到顶部