빅데이터(BigData)/Spark

java.time.format.DateTimeParseException: Text '2020-09-16 16:24:08.0' could not be parsed, unparsed text found at index 19 와 같은 에러가 발생하는 경우에 조치 방법

leebaro 2020. 9. 18.
728x90

spark 2.3에서 잘 수행되던 코드가 spark 3.0에서 아래와 같은 오류가 발행했다.

select
unix_timestamp(update_dt)

 

오류 메세지

Caused by: java.time.format.DateTimeParseException: Text '2020-09-16 16:24:08.0' could not be parsed, unparsed text found at index 19
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1952)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1777)
at org.apache.spark.sql.catalyst.util.Iso8601TimestampFormatter.$anonfun$parse$1(TimestampFormatter.scala:79)

 

확인 결과 아래와 같이 saprk 3.x에서는 unix_timestamp 함수를 이용할 경우 date format을 명시해줘야 한다.

 

최종적으로 아래와 같이 코드를 변경 후 에러가 발생하지 않았다.

select unix_timestamp(update_dt,'yyyy-MM-dd HH:mm:ss.SSS')

 

참고

spark.apache.org/docs/latest/api/python/pyspark.sql.html?highlight=unix_timestamp#pyspark.sql.functions.unix_timestamp

728x90