Saya memiliki bingkai data Pyspark yang berisi kolom tanggal "Tanggal Dilaporkan" (tipe: string). Saya ingin menghitung kolom lain setelah mengekstraksi tahun dari tanggal.
Saya bisa menghitungnya jika saya menggunakan kolom tanggal string.
crimeFile_date.groupBy("Reported Date").sum("Offence Count").show()
dan saya mendapatkan hasil ini
+-------------+------------------+
|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|
+-------------+------------------+
Untuk mengekstrak tahun dari "Tanggal Dilaporkan" saya telah mengonversinya ke format tanggal (menggunakan pendekatan ini) dan memberi nama kolom "Tanggal". Namun, ketika saya mencoba menggunakan kode yang sama untuk mengelompokkan berdasarkan kolom baru dan menghitung, saya mendapatkan pesan kesalahan.
crimeFile_date.groupBy(year("Date").alias("year")).sum("Offence Count").show()
TypeError: strptime() argument 1 must be str, not None
Ini adalah skema datanya:
root
|-- Offence Count: integer (nullable = true)
|-- Reported Date: string (nullable = true)
|-- Date: date (nullable = true)
Apakah ada cara untuk memperbaiki kesalahan ini? atau mengekstrak tahunnya menggunakan metode lain? Terima kasih