2016-08-23 4 views
1

this하지만 그 반대의 경우를 원합니다.Spark SQL을 사용하여 ISO 8601에서 datetime 구문 분석

date의이 형식 YYYY-MM-DDThh:mm:ss에, 내가 원한다면 내가 특정 쿼리, CONCAT 수있는 두 개의 열 YYYY-MM-DDhh:mm을 할 수 있습니다.

convert()을 사용할 때 오류가 발생합니다. Spark SQL에서는 현재 지원되지 않는다고 가정합니다.

date(datetime) 또는 timestamp(datetime)을 사용할 때 모든 null 값이 반환됩니다. 그러나 minute(datetime)hour(datetime)이 작동합니다. 분명히 효율적이지 인이

concat(date,' ', hour,':', (case when minute < 10 then concat('0',minute) else minute end)) as DateTime 
from (select OtherDateOnlyColumn as date, minute(datetime) as minute, hour(datetime) as hour from ...) 

을 사용하여 현재

.

답변

0

난 그냥이 쿼리에 날짜()을 시도하고 작동 :

select date(datetime) from df 

어쩌면 당신의 테이블에 날짜가 문자열 형식입니다 당신은 날짜 문자열 유형 인 경우, 타임 스탬프 형식으로 다시 날짜를 변환하고 거기에서 date_format(newTimestamp, 'YYYY-MM-dd hh:mm')의 변종을 사용하는 Spark SQL에서 사용할 수 cast(datetime as timestamp) as newTimestamp을 사용할 수 있습니다

DESCRIBE your_table 

와 컬럼의 데이터 유형을 확인해야합니다.