Я использую кластер Azure Databricks.
- Тип рабочего и драйвера: Standard_DS4_v2 Спецификации: 28,0 ГБ памяти, 8 ядер, 1,5 DBU
- Версия базы данных исполнения: 6.1 (включает Apache Spark 2.4.4, Scala 2.11)
У меня есть фрейм данных pyspark ttonag_algnd_prdictn_df1 . здесь около 32 000 строк. Этот фрейм данных извлекается из DB2 с помощью spark.read (...). Я просто извлекаю из него 10 строк, используя ключевое слово limit .
a = ttonag_algnd_prdictn_df1.limit(10)
a.show () дает (для удобства чтения я поставил файл в текстовый файл и сделал все это видимым в 1 строку)
TONAG_ALGND_PRDICTN_ID,TONAG_MGT_YR,LINE_SGMT_NBR|TRAK_TYP_CD|BGN_MP_NBR|END_MP_NBR|TRAK_SDTRAK_NBR|ALGND_BGN_MP_NBR|ALGND_END_MP_NBR
1 2017 1 M 165.475 168.351 0 165.475 168.351
1 2018 1 M 165.475 168.351 0 165.475 168.351
1 2019 1 M 165.475 168.351 0 165.475 168.351
2 2016 1 M 395.225 405.698 0 395.225 405.698
2 2017 1 M 395.225 405.698 0 395.225 405.698
2 2018 1 M 395.225 405.698 0 395.225 405.698
2 2019 1 M 395.225 405.698 0 395.225 405.698
3 2016 1 M 412.005 422.198 0 412.005 422.198
3 2017 1 M 412.005 422.198 0 412.005 422.198
Теперь я делаю следующие операции.
- выберите подмножество столбцов из 'a' и drop_duplicates.
unique_mp_pair_df = a.select("LINE_SGMT_NBR","TRAK_TYP_CD","TRAK_SDTRAK_NBR","ALGND_BGN_MP_NBR","ALGND_END_MP_NBR")
unique_mp_pair_df.show()
+-------------+-----------+---------------+----------------+----------------+
|LINE_SGMT_NBR|TRAK_TYP_CD|TRAK_SDTRAK_NBR|ALGND_BGN_MP_NBR|ALGND_END_MP_NBR|
+-------------+-----------+---------------+----------------+----------------+
| 1| M| 0 | 165.47500| 168.35100|
| 1| M| 0 | 165.47500| 168.35100|
| 1| M| 0 | 165.47500| 168.35100|
| 1| M| 0 | 165.47500| 168.35100|
| 1| M| 0 | 395.22500| 405.69800|
| 1| M| 0 | 395.22500| 405.69800|
| 1| M| 0 | 395.22500| 405.69800|
| 1| M| 0 | 395.22500| 405.69800|
| 1| M| 0 | 412.00500| 422.19800|
| 1| M| 0 | 412.00500| 422.19800|
+-------------+-----------+---------------+----------------+----------------+
unique_mp_pair_df = unique_mp_pair_df.drop_duplicates()
Теперь я буду ожидать, что строки будут уникальными. Однако значение, которое я получаю, вообще не имеет смысла.
unique_mp_pair_df.show()
+-------------+-----------+---------------+----------------+----------------+
|LINE_SGMT_NBR|TRAK_TYP_CD|TRAK_SDTRAK_NBR|ALGND_BGN_MP_NBR|ALGND_END_MP_NBR|
+-------------+-----------+---------------+----------------+----------------+
| 7101| M| 0 | 11.29000| 24.88200|
+-------------+-----------+---------------+----------------+----------------+
Выше приведена строка в ttonag_algnd_prdictn_df1 . Но после ограничения строк до 10, это не было включено. как показано выше, выполнив a.show ()
Кто-нибудь, пожалуйста, помогите мне понять это. Что я делаю неправильно? Любая помощь высоко ценится.