pyspark 3

pyspark UDF(User Defined Functions) 만들기 방법 및 예제

pyspark를 활용할때 dataframe의 변환과 같은 작업을 위해 UDF가 필요할 때가 있습니다. UDF란 User Defined Functions의 약자로서 사용자가 직접 개발한 method를 뜻합니다. UDF를 만들기 위한 sample 코드를 공유하고자 합니다. 그리고 pyspark에서 dataframe을 처리하려면 아래와 같이 사용하곤합니다. df = sc.read.csv(target_data,header=False,sep="\u0001") processedDf = df.withColumn(target_column, customMethod(df[target_column])) 그리고 Spark에 UDF를 등록하기 위해 아래와 같이 annotation을 붙여주는 방식으로 사용하여 function을 ..

빅데이터 2020.02.13
pyspark에서 gzip으로 압축되어 있는 파일 읽는 방법

pyspark를 통해 다양한 파일을 읽을 수 있습니다. 보통 .text 또는 .log와 같은 확장자로 되어진 plainText를 읽기도 하지만 압축된 파일인 .gz 과 같은 파일을 읽어야할 때도 있습니다. 이렇게 .gz과 같이 압축된 파일을 pyspark를 통해 읽으려면 어떻게 해야할까요? rdd = sc.textFile("data/label.gz") print rdd.take(10) 정답은 생각보다 간단합니다. textFile method를 사용하여 .text나 .log파일을 읽듯이 그대로 입력하여 읽으면 됩니다. Spark Document에 따르면 아래와 같이 나와 있습니다. All of Spark’s file-based input methods, including textFile, support r..

빅데이터/하둡 2020.02.11
pyspark에러 ImportError: No module named XXXX

pyspark로 개발하다 보면 local에서 돌릴때는 정상적으로 돌아가는데 cluster mode(yarn 등)으로 실행할때 아래와 같이 오류가 발생하는 경우가 있습니다. 사실 spark가 돌아가는 방식에 대해 이해하면 쉬운데, 결론부터 말하자면 worker node에 해당 모듈이 깔려 있지 않아서 발생하는 오류입니다. 위 그은Spark가 Cluster deployment mode로 돌아가는 것을 형상화 합니다. 실제로 돌아가는 Task는 각 worker node에서 수행하기 때문에 각 worker node에 module 이 존재하지 않으면 module을 못찾게 되는 것입니다.

빅데이터/하둡 2020.02.10