스택큐힙리스트

Convert pyspark string to date format</p><p>pyspark 문자열을 날짜 형식으로 변환 본문

카테고리 없음

Convert pyspark string to date format</p><p>pyspark 문자열을 날짜 형식으로 변환

스택큐힙리스트 2023. 12. 3. 00:03
반응형

날짜 pyspark 데이터프레임이 있으며, 이는 MM-dd-yyyy 형식의 문자열 열이 있습니다. 이를 날짜 열로 변환하려고 시도하고 있습니다.


다음과 같이 시도해보았습니다:


df.select(to_date(df.STRING_COLUMN).alias('new_date')).show()

하지만 null 문자열만 얻습니다. 누군가 도와주실 수 있나요?

답변 1

업데이트 (1/10/2018):


Spark 2.2+에서 이를 수행하는 가장 좋은 방법은 아마도 to_date 또는 to_timestamp 함수를 사용하는 것입니다. 이 둘은 모두 format 인자를 지원합니다. 문서에서는 다음과 같이 설명하고 있습니다:


>>> 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()
[Row(dt=datetime.datetime(1997, 2, 28, 10, 30))]

원본 답변 (Spark < 2.2의 경우)


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)
#데이터프레임 [date_str: string, date: timestamp]
df2.show(truncate=False)
#+----------+-------------------+
#|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|
#+----------+-------------------+

답변 2

피스파크(Pyspark)에서 문자열을 날짜 형식으로 변환하는 방법은 여러 가지가 있습니다. 다음은 가장 일반적인 방법입니다.
首先,我们需要使用Pyspark中的`to_date`函数将字符串转换为日期格式。此函数的语法如下:
```python
from pyspark.sql.functions import to_date
```
`to_date`函数需要两个参数,第一个参数是要转换的字符串列,第二个参数是字符串的日期格式。在Korean SEO文章中,我们将使用一个示例列名“날짜”和日期格式“yyyy-MM-dd”。
以下示例代码演示了如何在Pyspark中使用`to_date`函数将字符串列转换为日期格式:
```python
# Pyspark Import
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, to_date
# SparkSession 초기화
spark = SparkSession.builder.getOrCreate()
# 예제 데이터프레임 생성
data = [(2022-01-01), (2022-02-01), (2022-03-01)]
df = spark.createDataFrame(data, [날짜])
# 문자열을 날짜 형식으로 변환
df = df.withColumn(날짜, to_date(col(날짜), yyyy-MM-dd))
# 결과 출력
df.show()
```
在此示例中,我们首先导入必要的库,然后通过使用`createDataFrame`函数创建一个示例数据框。然后,我们使用`withColumn`函数将字符串列“날짜”转换为日期格式,并指定日期格式作为“yyyy-MM-dd”。
最后,我们使用`show`函数打印结果。运行此代码将输出以下结果:
```
+----------+
| 날짜|
+----------+
|2022-01-01|
|2022-02-01|
|2022-03-01|
+----------+
```
通过使用`to_date`函数,我们可以将字符串列转换为日期格式,并在Pyspark中使用它们进行进一步的分析和处理。
这篇SEO意识的Korean文章描述了如何将Pyspark中的字符串转换为日期格式。我们使用了`to_date`函数和示例代码来说明这个过程。将字符串转换为日期可以帮助我们在数据分析中更精确地处理日期相关的信息。希望这篇文章对您在Pyspark中进行日期转换有所帮助!

반응형
Comments