TGViewer
дата инженеретта дата инженеретта @data_engineerette · 3.43K subscribers
Post #75 902
💡Ответ💡
Правильные варианты - 2, 4.

Тут есть несколько интересных моментов:

1️⃣Агрегация

Делается через .agg() - на вход подается функция, которая что-то считает:

F.min(), F.max(), F.count(), F.countDistinct(), F.sum(), F.sumDistinct(), F.avg(), F.mean и т.д.

Дополнительно в селекте прописывать не нужно:
df.groupBy("department") \
.agg(F.sum("salary"), \
F.avg("salary"))


2️⃣На любое поле можно навесить элиасы

df.groupBy("department")
.agg(F.sum("salary").alias("sum_salary"), \
F.avg("salary").alias("avg_salary"))


3️⃣ having не существует

После агрегации у нас появляется новое поле, по которому сразу можно фильтровать. Без элиасов поля будут называться как функция(поле)
# равнозначны
.agg(F.count("customer_id").alias("cnt"))
.where("cnt > 5")

.agg(F.count("customer_id"))
.where("count(customer_id) > 5")


4️⃣ where и filter взаимозаменяемы

Внутри можно использовать как стандартный sql в кавычках, так и делать питоновские/скаловские сравнения:
.where("date = '2024-02-08'")
.filter("date = '2024-02-08'")
.where(F.col('date') == '2024-02-08')
.filter(F.col('date') == '2024-02-08')


Обратите внимание, что на Scala тройное равно:
.where("date = '2024-02-08'")
.filter("date = '2024-02-08'")
.where(col("date") === "2024-02-08")
.filter(col("date") === "2024-02-08")


col - это обертка над колонкой, которая дает доступ к более крутым функциям поверх: alias(), desc(), like(), isNull() и т.д.

#spark
  • 🔥 7
More from @data_engineerette
  1. Oct 2, 2026Lance Недавно ковырялась в инструменте для обслуживания таблиц Apache Amoro и наткнулась н…
  2. Sep 30, 20265 октября начнется 19-й поток программы Data Engineer от Newprolab Программа для junior- и…
  3. Sep 25, 2026Как прошла SmartData 2026? Я вот перечитываю свои впечатления от прошлого года и понимаю,…
  4. Sep 24, 2026Исследование data-people Тут ребята из DevCrowd запустили ежегодное исследование специалис…
  5. Sep 15, 2026Каким должен быть хороший DE? Меня однажды спросили на собесе: 🤩Какие 3 качества важны дл…
  6. Sep 12, 2026Mermaid-диаграммы Наконец-то дошли руки поковыряться в mermaid-диаграммах, это что за имба…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →