ฉันมีกรอบข้อมูล 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)
มีวิธีแก้ไขข้อผิดพลาดนี้หรือไม่? หรือแยกปีด้วยวิธีอื่น? ขอบคุณ