2

我使用 pySpark 编写镶木地板文件。我想更改该文件的 hdfs 块大小。我这样设置块大小,但它不起作用:

sc._jsc.hadoopConfiguration().set("dfs.block.size", "128m")

是否必须在开始 pySpark 作业之前设置?如果是这样,该怎么做。

4

2 回答 2

1

尝试sc._jsc.hadoopConfiguration()使用SparkContext进行设置

from pyspark import SparkConf, SparkContext 
conf = (SparkConf().setMaster("yarn")) 
sc = SparkContext(conf = conf)
sc._jsc.hadoopConfiguration().set("dfs.block.size", "128m")
txt = sc.parallelize(("Hello", "world", "!"))
txt.saveAsTextFile("hdfs/output/path") #saving output with 128MB block size

在斯卡拉:

sc.hadoopConfiguration.set("dfs.block.size", "128m")
于 2016-12-04T13:26:06.673 回答
0

我有一个类似的问题,但我发现了这个问题。它需要一个数字而不是“128m”。因此这应该有效(至少对我有用!):

block_size = str(1024 * 1024 * 128)
sc._jsc.hadoopConfiguration().set("dfs.block.size", block_size)
于 2017-01-20T18:46:40.693 回答