Я ищу эквивалент Pyspark для этого вопроса: How to get the number of elements in partition?.Подсчитайте количество элементов в каждом pyspark разделе RDD
В частности, я хочу программно подсчитать количество элементов в каждом разделе RysDys или dataframe pyspark (я знаю, что эта информация доступна в пользовательском интерфейсе Spark Web).
Эта попытка приводит к «AttributeError: объект„NoneType“не имеет атрибута" _jvm»:
df.foreachPartition(lambda iter: sum(1 for _ in iter))
Я не хочу, чтобы собрать содержимое итератора в память.
Спасибо @ShuaiYuan. Нет, я знаю, что мне придется перебирать счет, чтобы получить счет. Ваше первое решение работает для меня! Тем не менее, второй по-прежнему бросает тот же атрибут AttributeError, что и моя первоначальная попытка в Spark 1.5.0 (кластер моей организации) даже на «данные» rdd, которые вы создаете в своем примере. AttributeError: объект «NoneType» не имеет атрибута «_jvm». Однако в Spark Community Edition с версиями 1.6.0 или 1.5.2 оба ваших решения работают. Возможно, что-то странное в моем местном дистрибутиве CDH? –
Может быть. К сожалению, у меня нет Spark 1.5.0 для тестирования. – ShuaiYuan