2016-12-04 6 views
0

Я использую pySpark для записи паркетного файла. Я хотел бы изменить размер блока hdfs этого файла. Я установить размер блока, как это и он не работает:Как изменить размер блока hdfs в pyspark?

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

ли это быть установлен перед началом работы pySpark? Если да, то как это сделать.

+0

Привет, если какой-либо из ниже ответов решил вашу проблему, пожалуйста, рассмотреть [принятия] (http://meta.stackexchange.com/q/5234/ 179419) лучший ответ или добавление собственного решения. Таким образом, это указывает более широкому сообществу, что вы нашли решение. – mrsrinivas

+0

Я не уверен, что вы можете его изменить, так как файл написан на HDFS. Spark будет выделять задачу на один раздел файла (вид картографа). Вот почему многие люди рекомендуют иметь блок размером 256 м для Spark. –

ответ

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 

в Scala Try:

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

Не работает. Я использую pyspark версии 1.6.2. –

+0

PLS проверить обновление – mrsrinivas

0

Я был похож вопрос, но я понял вопрос. Ему нужно число не «128 м». Поэтому это должно работать (работал для меня по крайней мере!):

block_size = str(1024 * 1024 * 128) 
sc._jsc.hadoopConfiguration().set("dfs.block.size", block_size) 
Смежные вопросы