SC Scala  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Apache Spark: RDD и DataFrame

Тест по теме «Apache Spark: RDD и DataFrame» проверяет Ленивая модель, Преобразования, Действия, Разбиение данных, Профилирование решения и Архитектурные компромиссы. Здесь нужно читать код, различать близкие технические объяснения и замечать границы гарантий.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом задании верен только один вариант. Фрагменты относятся к Scala 3; внешняя библиотека названа прямо в коде или условии.
Вопрос 1 из 30
В теме «Ленивая модель» проследите типы и порядок вычисления. Какой вывод выдерживает такую проверку?
ScalaЛенивая модель: чтение фрагмента
val cleaned = spark.read.parquet("in").filter($"active" === true).select("id")
val count = cleaned.count()
Вопрос 2 из 30
Какой риск остаётся после успешного запуска примера с «Ленивая модель»?
ScalaЛенивая модель: изменившийся контекст
// Дополнительный контекст: Объём данных вырос, изменился план выполнения и часть вычислений прошла через `shuffle`.
val cleaned = spark.read.parquet("in").filter($"active" === true).select("id")
val count = cleaned.count()
Вопрос 3 из 30
Какой вариант чинит проблему на уровне «Ленивая модель»?
ScalaЛенивая модель: решение на ревью
val cleaned = spark.read.parquet("in").filter($"active" === true).select("id")
val count = cleaned.count()
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 4 из 30
В контракте темы «Ленивая модель» какая формулировка учитывает и семантику конструкции, и реальный риск?
T=T_{compute}+T_{shuffle}+T_{spill}
Вопрос 5 из 30
При проверке темы «Ленивая модель» какой итог ревью содержит и действие, и способ заметить возврат риска?
Вопрос 6 из 30
В теме «Преобразования» какое утверждение не переносит в Scala правило из другого языка или другой конструкции?
ScalaПреобразования: чтение фрагмента
val totals = df.groupBy("region").agg(sum("amount").as("total"))
Вопрос 7 из 30
Задачу перезапустили после частичной записи результата. Какое ограничение темы «Преобразования» становится существенным?
ScalaПреобразования: изменившийся контекст
// Дополнительный контекст: Объём данных вырос, изменился план выполнения и часть вычислений прошла через `shuffle`.
val totals = df.groupBy("region").agg(sum("amount").as("total"))
Вопрос 8 из 30
При исправлении темы «Преобразования» какое решение уменьшает вероятность повторения обнаруженного дефекта?
ScalaПреобразования: решение на ревью
val totals = df.groupBy("region").agg(sum("amount").as("total"))
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 9 из 30
В контракте темы «Преобразования» новый сценарий не отменяет основное правило, но делает заметной его границу. Какой ответ это отражает?
p_i=|partition_i|
Вопрос 10 из 30
При проверке темы «Преобразования» что нужно оставить после исправления, кроме комментария в исходном файле?
Вопрос 11 из 30
В теме «Действия» какой вывод о типах или выполнении прямо следует из кода?
ScalaДействия: чтение фрагмента
val sample = df.orderBy(desc("amount")).limit(20).collect()
Вопрос 12 из 30
Для темы «Действия» обычный пример прошёл, затем изменились условия использования. Какой риск нужно проверить первым?
ScalaДействия: изменившийся контекст
// Дополнительный контекст: Небольшую таблицу перестали передавать широковещательно после обновления статистики.
val sample = df.orderBy(desc("amount")).limit(20).collect()
Вопрос 13 из 30
При исправлении темы «Действия» команда сравнивает несколько правок. Какая из них делает допущение явным и проверяемым?
ScalaДействия: решение на ревью
val sample = df.orderBy(desc("amount")).limit(20).collect()
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 14 из 30
В контракте темы «Действия» задачу перезапустили после частичной записи результата. Какой анализ пригоден для публичного API?
Вопрос 15 из 30
Какой критерий готовности по теме «Действия» действительно поймает повтор прежнего дефекта?
Вопрос 16 из 30
В теме «Разбиение данных» как сформулировать семантику примера так, чтобы она сохранилась после переименования переменных?
ScalaРазбиение данных: чтение фрагмента
val keyed = rdd.keyBy(_.customerId)
val parts = keyed.getNumPartitions
Вопрос 17 из 30
Какой контрпример лучше всего проверяет обещание «Разбиение данных»?
ScalaРазбиение данных: изменившийся контекст
// Дополнительный контекст: Объём данных вырос, изменился план выполнения и часть вычислений прошла через `shuffle`.
val keyed = rdd.keyBy(_.customerId)
val parts = keyed.getNumPartitions
Вопрос 18 из 30
При исправлении темы «Разбиение данных» какой вариант не переносит проблему в вызывающий код?
ScalaРазбиение данных: решение на ревью
val keyed = rdd.keyBy(_.customerId)
val parts = keyed.getNumPartitions
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 19 из 30
В контракте темы «Разбиение данных» какой вариант не теряет существенную часть технической картины?
Вопрос 20 из 30
При проверке темы «Разбиение данных» что команда должна проверять при каждом похожем изменении?
Вопрос 21 из 30
Во фрагменте проверяется тема «Профилирование решения». Какое правило точнее всего объясняет поведение кода?
ScalaПрофилирование решения: чтение фрагмента
df.explain("formatted")
println(spark.sparkContext.getConf.get("spark.sql.shuffle.partitions"))
Вопрос 22 из 30
Для темы «Профилирование решения» что остаётся обязанностью вызывающего кода или окружения?
ScalaПрофилирование решения: изменившийся контекст
// Дополнительный контекст: Объём данных вырос, изменился план выполнения и часть вычислений прошла через `shuffle`.
df.explain("formatted")
println(spark.sparkContext.getConf.get("spark.sql.shuffle.partitions"))
Вопрос 23 из 30
При исправлении темы «Профилирование решения» что следует изменить, чтобы следующий рефакторинг не вернул тот же риск?
ScalaПрофилирование решения: решение на ревью
df.explain("formatted")
println(spark.sparkContext.getConf.get("spark.sql.shuffle.partitions"))
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 24 из 30
В контракте темы «Профилирование решения» что следует оставить в проектном решении после этого изменения контекста?
Вопрос 25 из 30
При проверке темы «Профилирование решения» какой итог можно проверить автоматически или воспроизводимым примером?
Вопрос 26 из 30
В теме «Архитектурные компромиссы» что в этом примере определяется семантикой Scala, а не соглашением автора?
ScalaАрхитектурные компромиссы: чтение фрагмента
val df2 = df.filter(col("year") >= 2025).select("id", "score")
Вопрос 27 из 30
Для темы «Архитектурные компромиссы» после переноса кода в общий модуль проявилось скрытое допущение. Какое?
ScalaАрхитектурные компромиссы: изменившийся контекст
// Дополнительный контекст: Задачу перезапустили после частичной записи результата.
val df2 = df.filter(col("year") >= 2025).select("id", "score")
Вопрос 28 из 30
Какую правку по теме «Архитектурные компромиссы» разумно объединить?
ScalaАрхитектурные компромиссы: решение на ревью
val df2 = df.filter(col("year") >= 2025).select("id", "score")
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 29 из 30
В контракте темы «Архитектурные компромиссы» задачу перезапустили после частичной записи результата. Какой вывод одновременно сохраняет правило и учитывает его границу?
Вопрос 30 из 30
При проверке темы «Архитектурные компромиссы» как сформулировать защиту от регрессии без расплывчатого «работает как раньше»?

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу