Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 如何在pyspark中更改hdfs块大小?_Hadoop_Apache Spark_Hdfs_Pyspark_Apache Spark 1.6 - Fatal编程技术网

Hadoop 如何在pyspark中更改hdfs块大小?

Hadoop 如何在pyspark中更改hdfs块大小?,hadoop,apache-spark,hdfs,pyspark,apache-spark-1.6,Hadoop,Apache Spark,Hdfs,Pyspark,Apache Spark 1.6,我使用pySpark编写拼花地板文件。我想更改该文件的hdfs块大小。我这样设置块大小,但不起作用: sc._jsc.hadoopConfiguration().set("dfs.block.size", "128m") 在开始pySpark作业之前是否必须设置此选项?如果是这样,怎么做。尝试通过sc.\u jsc.hadoopConfiguration()和SparkContext设置它 from pyspark import SparkConf, SparkContext conf =

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

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

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

尝试通过
sc.\u 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
在Scala中:

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

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


它不起作用。我使用PiSpice版本1.62.HI,如果下面的任何一个解决了您的问题,请考虑最好的答案或添加自己的解决方案。因此,它向更广泛的社区表明,您已经找到了一个解决方案。我不确定您是否可以更改它,这就是文件在HDFS中的编写方式。Spark将为每个文件分区分配一个任务(类似于映射器)。这就是为什么很多人建议为Spark设置256m的区块。
block_size = str(1024 * 1024 * 128)
sc._jsc.hadoopConfiguration().set("dfs.block.size", block_size)