Spark: разница при чтении в .gz и .bz2

Я обычно читаю и записываю файлы в Spark, используя .gz, количество файлов должно быть таким же, как и количество разделов RDD. То есть один гигантский файл .gz будет считан в один раздел. Однако, если я прочитаю в одном .bz2, получу ли я один гигантский раздел? Или Spark будет поддерживать автоматическое разделение одного .bz2 на несколько разделов?

Кроме того, как мне узнать, сколько будет разделов, пока Hadoop читает из одного файла bz2? Спасибо!

Ответы на вопрос(2)

Я не знаю, почему моя тестовая программа запускается на одном исполнителе, после некоторого теста я думаю, что получаю его, вот так:

от pySpark

// Load a DataFrame of users. Each line in the file is a JSON 

// document, representing one row.

val sqlContext = new org.apache.spark.sql.SQLContext(sc)

val user = sqlContext.read.json("users.json.bz2")
Решение Вопроса
    However, if I read in one single .bz2, would I still get one single giant partition?   
Or will Spark support automatic split one .bz2 to multiple partitions?

Если вы укажетеn разделы для чтенияbzip2 файл, Spark появитсяn Задачи для чтения файла параллельно. Значение по умолчаниюn установлен вsc.defaultParallelism, Количество разделов является вторым аргументом в вызовеtextFile (документы).

. one giant .gz file will read in to a single partition.

Обратите внимание, что вы всегда можете сделать

sc.textFile(myGiantGzipFile).repartition(desiredNumberOfPartitions)

чтобы получить желаемое количество разделов после того, как файл был прочитан.

Also, how do I know how many partitions it would be while Hadoop read in it from one bz2 file.

Это было быyourRDD.partitions.size для Scala API илиyourRDD.getNumPartitions() для питона API.

Ваш ответ на вопрос