Hadoop 如何在pyspark中更改hdfs块大小?
我使用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 =
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)