У меня есть фрейм данных Pyspark, который содержит столбец даты «Сообщенная дата» (тип: строка). Я хотел бы получить счет другого столбца после извлечения года из даты.
Я могу получить счет, если использую строковый столбец даты.
crimeFile_date.groupBy("Reported Date").sum("Offence Count").show()
и я получаю этот вывод
+-------------+------------------+
|Reported Date|sum(Offence Count)|
+-------------+------------------+
| 13/08/2010| 342|
| 6/10/2011| 334|
| 27/11/2011| 269|
| 12/01/2012| 303|
| 22/02/2012| 286|
| 31/07/2012| 276|
| 25/04/2013| 222|
+-------------+------------------+
Чтобы извлечь год из «Сообщенной даты», я преобразовал его в формат даты (используя этот подход) и назвал столбец" Дата ". Однако, когда я пытаюсь использовать тот же код для группировки по новому столбцу и подсчета, я получаю сообщение об ошибке.
crimeFile_date.groupBy(year("Date").alias("year")).sum("Offence Count").show()
TypeError: strptime() argument 1 must be str, not None
Это схема данных:
root
|-- Offence Count: integer (nullable = true)
|-- Reported Date: string (nullable = true)
|-- Date: date (nullable = true)
Есть ли способ исправить эту ошибку? или извлеките год другим методом? Спасибо