Spark coalesce не уменьшая количество перегородок - PullRequest
0 голосов
/ 09 октября 2018

У меня есть этот код

df.coalesce (40)

print(" after coalisce getting nb partition " + str(df.rdd.getNumPartitions()))

Это не print 40, я что-то не так делаю?

Ответы [ 3 ]

0 голосов
/ 09 октября 2018

Попробуйте сделать это вместо этого:

df_new=df.coalesce(40)
print(" after coalisce getting nb partition " + str(df_new.rdd.getNumPartitions()))

Coalesce возвращает новый rdd вместо внесения изменений на месте.

0 голосов
/ 09 октября 2018

Я бы предложил вам сначала пройтись по искровой архитектуре, а затем попытаться понять концепцию неизменных объектов.Это поможет вам лучше понять ответы, предоставленные другими пользователями выше.

0 голосов
/ 09 октября 2018

Метод coalesce возвращает вам преобразованный Dataframe.Это не изменяет оригинальный Dataframe.Вы должны получить количество разделов после применения преобразования coalesce.

Например, на искровой оболочке, работающей на 8-ядерном компьютере, возвращается следующий вывод.

 scala> df.rdd.getNumPartitions
 res3: Int = 8

После примененияслиться, вы получите требуемый результат

 scala> df.coalesce(1).rdd.getNumPartitions
 res1: Int = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...