Python/Python pyspark
Python pyspark : lit (literal value로 column 만들기)
CosmosProject
2021. 5. 28. 20:24
728x90
반응형
pyspark의 lit method는 literal value로 column을 생성할 때 사용됩니다.
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, lit
import pandas as pd
spark = SparkSession.builder.getOrCreate()
df_test = pd.DataFrame({
'a': [1, 2, 3],
'b': [10.0, 3.5, 7.315],
'c': ['apple', 'banana', 'tomato']
})
df_spark = spark.createDataFrame(df_test)
df_new = df_spark.select(
col('a'),
col('b'),
lit('z').alias('d') # 1
)
df_new.show()
-- Result
+---+------+----+
| a| b| d|
+---+------+----+
| 1| 10.0| z|
| 2| 3.5| z|
| 3| 7.315| z|
+---+------+----+
1. d라는 이름의 컬럼을 select method와 함께 생성하고있습니다.
이때 d 컬럼에 들어갈 값은 'z'라는 리터럴값이 되죠.
결과를 보면 d컬럼에 z가 들어간걸 볼 수 있습니다.
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, lit
import pandas as pd
import datetime
spark = SparkSession.builder.getOrCreate()
df_test = pd.DataFrame({
'a': [1, 2, 3],
'b': [10.0, 3.5, 7.315],
'c': ['apple', 'banana', 'tomato']
})
df_spark = spark.createDataFrame(df_test)
df_new = df_spark.select(
col('a'),
col('b'),
lit(datetime.datetime.now().strftime('%Y%m%d')).alias('load_dt') # 1
)
df_new.show()
-- Result
+---+------+----------+
| a| b| load_dt|
+---+------+----------+
| 1| 10.0| 20210528|
| 2| 3.5| 20210528|
| 3| 7.315| 20210528|
+---+------+----------+
1. lit을 약간 응용하면 위처럼 현재 날짜값을 가지는 column을 생성할 수도 있겠죠.
728x90
반응형