F.date_add(시작, 일)
F.date_sub(시작, 일)
F.add_months(시작, 월)
F.datediff(끝, 시작)
F.months_between(날짜1, 날짜2)
F.last_day(날짜)
F.next_day(날짜, 요일)
F.year(열)
F.month(열)
F.dayofmonth(열)
F.hour(열)
F.minute(열)
F.second(열)
F.quarter(열)
F.dayofyear(열)
F.weekofyear(열)
빠른 참조를 위해 아래를 확인하세요:
형식 | 예시 |
---|---|
yyyy-MM-dd | 1997-01-31 |
yyyy-MM-dd HH:mm | 1997-01-31 23:59:59 |
날짜 형식화 문자열 패턴은 Java class java.text.SimpleDateFormat에 기반합니다. 완전한 출처는 날짜 & 시간 형식 문법 표에서 확인 가능합니다.
F.to_date(열, 형식=None)
F.to_timestamp(열, 형식=None)
F.to_utc_timestamp(타임스탬프, tz)
F.unix_timestamp(타임스탬프=None, 형식='yyyy-MM-dd HH:mm:ss')
F.date_format(날짜, 형식)
F.from_unixtime(타임스탬프, 형식='yyyy-MM-dd HH:mm:ss')
F.from_utc_timestamp(타임스탬프, tz)
long
에서 timestamp
로 캐스팅일부 시스템은 타임스탬프를 long
데이터 유형으로, 밀리초 단위로 저장합니다. PySpark SQL은 타임스탬프를 초 단위로 저장합니다. long
버젼의 타임스탬프를 적절하게 timestamp
로 캐스팅하기 위해 1000으로 나누어야 합니다:
Copied!1 2 3 4 5
# 타임스탬프를 1000으로 나누고, "timestamp" 형식으로 변환 casted_timestamp = (F.col('timestamp') / 1000).cast("timestamp") # 변환된 타임스탬프를 데이터 프레임에 적용 df = df.withColumn("timestamp", casted_timestamp) # 예시: 1531860192661 => Tuesday, July 17, 2018 8:43:12 PM (2018년 7월 17일 화요일 오후 8시 43분 12초)
우리는 또한 F.from_unixtime(timestamp)
를 명확성을 위해 사용할 수 있습니다:
Copied!1 2 3 4
# 유닉스 시간을 사용하여 타임스탬프를 생성합니다. timestamp = F.from_unixtime(F.col('timestamp') / 1000) # 데이터프레임에 새로운 타임스탬프 컬럼을 추가합니다. df = df.withColumn("timestamp", timestamp)
long
에서 timestamp
로 캐스팅할 때, 세밀함을 잃습니다. SQL은 초의 퍼센트나 소수를 저장할 수 없습니다.
F.trunc(날짜, 형식)
F.date_trunc(형식, 타임스탬프)