Чтобы достичь этого, вы должны использовать SparkContext
для установки свойства конфигурации Hadoop (sc.hadoopConfiguration
) mapreduce.input.fileinputformat.split.maxsize
.
Установив это свойство на меньшее значение, чем hdfs.blockSize, вы получите столько же разделов, сколько количество разделов.
Например: Когда hdfs.blockSize
= 134217728 (128 МБ) и один файл считывается, который содержит ровно один полный блок, а mapreduce.input.fileinputformat.split.maxsize
= 67108864 (64 МБ)
Тогда будут два раздела, в которые будут считываться данные расщепления.
Поиск, который вы делаете в get_queryset()
, не совсем правильный. Во-первых, вы, кажется, ищите Category
по имени, а не по слизняку. Затем вы пытаетесь отфильтровать Chart
с помощью их атрибута category
, но вместо передачи категории вы передаете несуществующий атрибут self.slug
.
Попробуйте изменить реализацию на это:
def get_queryset(self):
# Lookup the Category using it's slug attribute, not name, and assign to local variable
category = get_object_or_404(Category, slug=self.kwargs['slug'])
# Now lookup the Charts using the category we just looked up
return Chart.objects.filter(category=category)