> 백엔드 개발 > 파이썬 튜토리얼 > PySpark 문자열 열을 날짜 형식으로 변환하는 방법은 무엇입니까?

PySpark 문자열 열을 날짜 형식으로 변환하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-25 15:17:15
원래의
769명이 탐색했습니다.

How to Convert PySpark String Columns to Date Format?

PySpark 문자열을 날짜 형식으로 변환

MM-dd-yyyy 형식의 날짜를 나타내는 문자열 열이 있는 PySpark DataFrame이 있습니다. to_date 함수를 사용하여 이 열을 날짜 형식으로 변환하려고 하면 null이 반환됩니다. 이 문서에서는 이 문제를 해결하는 방법을 제공합니다.

업데이트된 권장 사항(Spark 2.2 ):

Spark 버전 2.2 이상의 경우 선호되는 접근 방식은 to_date 또는 이제 형식 인수를 지원하는 to_timestamp 함수. 이를 통해 입력 형식을 지정하고 문자열 열을 날짜 또는 타임스탬프로 직접 변환할 수 있습니다.

from pyspark.sql.functions import to_timestamp

df = spark.createDataFrame([('1997-02-28 10:30:00',)], ['t'])
df.select(to_timestamp(df.t, 'yyyy-MM-dd HH:mm:ss').alias('dt')).collect()

# Output:
# [Row(dt=datetime.datetime(1997, 2, 28, 10, 30))]
로그인 후 복사

원래 답변(Spark < 2.2):

이전 Spark 버전의 경우 사용자 정의 함수 없이 다음 방법을 사용할 수 있습니다. (UDF):

from pyspark.sql.functions import unix_timestamp, from_unixtime

df = spark.createDataFrame(
    [("11/25/1991",), ("11/24/1991",), ("11/30/1991",)], 
    ['date_str']
)

df2 = df.select(
    'date_str', 
    from_unixtime(unix_timestamp('date_str', 'MM/dd/yyy')).alias('date')
)

print(df2)

# Output:
# DataFrame[date_str: string, date: timestamp]

df2.show(truncate=False)

# Output:
# +----------+-------------------+
# |date_str  |date               |
# +----------+-------------------+
# |11/25/1991|1991-11-25 00:00:00|
# |11/24/1991|1991-11-24 00:00:00|
# |11/30/1991|1991-11-30 00:00:00|
# +----------+-------------------+
로그인 후 복사

이 방법에서 unix_timestamp는 문자열 열을 Unix 타임스탬프로 변환하고 from_unixtime은 Unix 타임스탬프를 날짜 열로 변환합니다.

위 내용은 PySpark 문자열 열을 날짜 형식으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿