Дополнительные приёмы с ID
Однажды настроив процесс в Spark, вы, скорее всего, захотите запускать его снова и снова. В зависимости от задачи может потребоваться, чтобы ID начинались с определённого значения — это исключит пересечение с результатами предыдущих запусков, как это принято в реляционных базах данных. Вам поставлена задача: убедиться, что ID, формируемые в ежемесячной задаче Spark, начинаются со значения, превышающего максимальное ID из предыдущего месяца.
В вашем рабочем пространстве доступны сессия spark и два DataFrame — voter_df_march и voter_df_april. Библиотека pyspark.sql.functions подключена под псевдонимом F.
Это упражнение является частью курса
Очистка данных с помощью PySpark
Инструкции к упражнению
- Определите наибольшее значение
ROW_IDвvoter_df_marchи сохраните его в переменнуюprevious_max_ID. Для получения максимального ID используйте выражение.rdd.max()[0]. - Добавьте столбец
ROW_IDвvoter_df_april, начиная со значенияprevious_max_ID+ 1. - Отобразите значения
ROW_IDиз обоих DataFrame и сравните их.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Determine the highest ROW_ID and save it in previous_max_ID
____ = ____.select('ROW_ID').rdd.max()[0] + 1
# Add a ROW_ID column to voter_df_april starting at the desired value
voter_df_april = ____.withColumn('ROW_ID', ____ + ____)
# Show the ROW_ID from both DataFrames and compare
____.select('ROW_ID').show()
____