Данные раздела при чтении файла в Spark - PullRequest
0 голосов
/ 25 апреля 2020

Я новичок в Spark. Рассмотрим следующий код:

val rdd = sc
  .objectFile[(Int, Int)]("path")
  .partitionBy(new HashPartitioner(sc.defaultParallelism))
  .persist()
rdd.count()

Читается ли каждый кортеж из файла, напрямую отправляемого в его раздел, указанный разделителем ha sh? Или же весь файл сначала читается в память без учета разделителя, а затем распределяется в соответствии с разделителем. На мой взгляд, первый может быть более эффективным, поскольку данные перетасовываются один раз, в то время как второму нужны два тасования.

1 Ответ

0 голосов
/ 25 апреля 2020

Пожалуйста, найдите комментарии в коде

val rdd = sc
  .objectFile[(Int, Int)]("path") // Loads the whole file with default minimum partitions and default partitioner
  .partitionBy(new HashPartitioner(sc.defaultParallelism)) // Re-partitions the RDD using HashPartitioner
  .persist() 
...