Меня немного смущает количество задач, созданных Spark при чтении нескольких текстовых файлов.Как искра определяет количество задач?
Вот код:
val files = List["path/to/files/a/23",
"path/to/files/b/",
"path/to/files/c/0"]
val ds = spark.sqlContext.read.textFile(files :_*)
ds.count()
Каждая из папок a, b, c
содержит 24 файлов, так что в общей сложности 26 файлов с полной b
папки для чтения. Теперь, если я выполняю действие, например .count()
, пользовательский интерфейс Spark показывает мне, что есть 24 задачи. Однако я бы подумал, что есть 26 задач, как в 1 задаче на раздел и 1 разделе для каждого файла.
Было бы здорово, если бы кто-то мог дать мне больше информации о том, что на самом деле происходит.
Что такое общее количество ядер, которые вы используете для работы? И вы задали какие-либо конфигурации? –
Чтобы было легко понять. Можете ли вы разместить свой код и информацию об искру. –
@SimonSchiff Я использовал 8 ядер, и у меня нет ничего, что я знаю. Однако это кажется правильным направлением. Я попытался выполнить код на более крупной машине, и у нее ожидалось 26 задач. –