반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Python
- hive
- list
- PySpark
- dataframe
- gas
- GIT
- Java
- c#
- PANDAS
- Apache
- PostgreSQL
- Excel
- numpy
- 파이썬
- Google Excel
- django
- array
- Github
- Mac
- matplotlib
- google apps script
- SQL
- Kotlin
- Redshift
- string
- math
- Tkinter
- Google Spreadsheet
Archives
- Today
- Total
달나라 노트
Python pyspark : udf (사용자 정의 함수 User Defined Functions 사용하기) 본문
Python/Python pyspark
Python pyspark : udf (사용자 정의 함수 User Defined Functions 사용하기)
CosmosProject 2021. 5. 28. 20:13728x90
반응형
udf method를 이용하면 만든 function을 column에 적용시킬 수 있습니다.
from pyspark.sql import SparkSession
from pyspark.sql.functions import udf
from pyspark.sql.function import col
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)
def myfunc(x): # 1
return x + 1
udf_myfunc = udf(myfunc) # 2
df_spark = df_spark.select(
udf_myfunc(col('a')).alias('new_c'), # 3
col('b'),
col('c')
)
df_spark.show()
-- Result
+---+------+-------+
| a| b| c|
+---+------+-------+
| 2| 10.0| apple|
| 3| 3.5| banana|
| 4| 7.315| tomato|
+---+------+-------+
1. custom function을 만듭니다.
2. 1번에서 만든 function을 udf method의 인자로 전달하고, udf_myfunc 변수에 사용자 정의 함수(User Defined Function)를 할당해줍니다.
3. column 'a'에 udf_myfunc 함수를 적용시켜줍니다.
myfunc 함수는 1을 더한 값을 return해주는 함수인데 예상대로 a컬럼의 값에 1씩 더해진 결과를 얻은 걸 볼 수 있습니다.
이런식으로 사용자 정의 함수(UDF, User Defined Function)를 특정 column에 적용시킬 수 있습니다.
728x90
반응형
'Python > Python pyspark' 카테고리의 다른 글
Python pyspark : drop (column 삭제하기) (0) | 2021.05.31 |
---|---|
Python pyspark : lit (literal value로 column 만들기) (0) | 2021.05.28 |
Python pyspark : alias (컬럼 이름 변경하기) (0) | 2021.05.28 |
Python pyspark : regexp_replace (정규표현식으로 문자 치환하기) (0) | 2021.05.28 |
Python pyspark : write, option, saveAsTable (spark dataframe을 AWS s3에 업로드하기) (0) | 2021.05.19 |
Comments