Więcej sztuczek z ID
Gdy zdefiniujesz proces Spark, zapewne będziesz chcieć go wielokrotnie używać. W zależności od potrzeb możesz chcieć, aby identyfikatory zaczynały się od określonej wartości, tak by nie nakładały się na wyniki z poprzednich uruchomień zadania Spark. Takie zachowanie jest podobne do tego, jak działają identyfikatory w relacyjnych bazach danych. Masz za zadanie zadbać o to, żeby identyfikatory generowane przez miesięczne zadanie Spark zaczynały się od wartości wyższej niż najwyższy identyfikator z poprzedniego miesiąca.
Sesja spark oraz dwa DataFrames – voter_df_march i voter_df_april – są dostępne w twoim środowisku roboczym. Biblioteka pyspark.sql.functions jest dostępna pod aliasem F.
To ćwiczenie jest częścią kursu
Czyszczenie danych w PySpark
Instrukcje do ćwiczenia
- Wyznacz najwyższą wartość
ROW_IDwvoter_df_marchi zapisz ją w zmiennejprevious_max_ID. Użyj wyrażenia.rdd.max()[0], aby pobrać maksymalne ID. - Dodaj kolumnę
ROW_IDdovoter_df_april, zaczynając od wartościprevious_max_ID+ 1. - Wyświetl kolumny
ROW_IDz obu DataFrames i porównaj je.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()
____