달나라 노트

Python pyspark : regexp_replace (정규표현식으로 문자 치환하기) 본문

Python/Python pyspark

Python pyspark : regexp_replace (정규표현식으로 문자 치환하기)

CosmosProject 2021. 5. 28. 18:54
728x90
반응형

 

 

 

 

 

regexp_replace(<column>, <pattern>, <text>)

 

pyspark의 regexp_replace는 위처럼 사용할 수 있습니다.

<column>에 있는 데이터들에 대해

<pattern>과 일치하는 부분을

<text>로 바꿔서 반환합니다.

 

 

 

from pyspark.sql import SparkSession
from pyspark.sql.functions import col, regexp_replace
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_spark = df_spark.select(
    col('a'),
    col('b'),
    regexp_replace(col('c'), '[a-z]', '@').alias('new_c') 
)
df_spark.show()


-- Result
+---+------+-------+
|  a|     b|  new_c|
+---+------+-------+
|  1|  10.0|  @@@@@|
|  2|   3.5| @@@@@@|
|  3| 7.315| @@@@@@|
+---+------+-------+

위 예시를 보면 column c의 모든 값에 대해

알파벳 소문자([a-z])에 해당하는 값을

골뱅이(@)로 바꿔서 return하고있죠.

 

또한 regexp_replace가 적용된 컬럼에 alias method를 적용하여

new_c라는 새로운 컬럼 이름을 붙여주고 있습니다.

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
Comments