Nano Hash - криптовалюты, майнинг, программирование

Замените нулевые значения столбца его средним значением в Spark DataFrame.

Есть ли в Spark функция, которая может вычислить среднее значение столбца в DataFrame, игнорируя null/NaN? Как и в R, мы можем передать такую ​​опцию, как na.rm=TRUE.

Когда я применяю avg() к столбцу с NaN, я получаю только NaN.


Ответы:


1

Вы можете сделать следующее:

df.na.drop(Seq("c_name")).select(avg(col("c_name")))
17.09.2017

2

Создайте фрейм данных без нулевых значений во всех столбцах, чтобы среднее значение столбца можно было рассчитать на следующем шаге.

removeAllDF = df.na.drop()

Создайте список столбцов, в которых нулевые значения должны быть заменены средними значениями столбца, и назовите список «columns_with_nas».

Теперь выполните итерацию по списку «columns_with_nas», замените все нулевые значения рассчитанными средними значениями.

for x in columns_with_nas:
    meanValue = removeAllDF.agg(avg(x)).first()[0]
    print(x, meanValue)
    df= df.na.fill(meanValue, [x])
16.03.2019

3

Кажется, это работает для меня в Spark 2.1.0:

In [16]: mydesc=[{'name':'Fela', 'age':46},
                {'name':'Menelik','age':None},
                {'name':'Zara','age':39}]
In [17]: mydf = sc.parallelize(mydesc).toDF()
In [18]: from pyspark.sql.functions import avg
In [20]: mydf.select(avg('age')).collect()[0][0]
Out[20]: 42.5
17.09.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..