2016-08-19 2 views
5

Spark에서 DataFrames로 작업 할 때 DataFrame에서 특정 열의 값만 편집해야하는 경우가 있습니다. 예를 들면. 내 데이터 프레임에 count 필드가 있고 count의 모든 값에 1을 추가하려면 DataFrames의 withColumn 기능을 사용하여 작업을 완료하기 위해 사용자 정의 udf를 작성하거나 map을 수행 할 수 있습니다. DataFrame에 저장 한 다음 결과 RDD에서 다른 DataFrame을 추출하십시오.지도와 udf의 차이점

내가 알고 싶은 것은 udf가 실제로 두포에서 어떻게 작동하는지입니다. 이 경우 map/udf를 사용하여 비교해보십시오. 성능 차이는 무엇입니까?

감사합니다.

+1

http://stackoverflow.com/q/38860808/1560062 – zero323

답변

1

간단히 말해 mapudf보다 유연합니다. map을 사용하면 행 내에서 조작 할 수있는 열 수에 대한 제한이 없습니다. 데이터의 5 열 값을 파생시키고 3 열을 삭제하려고한다고 가정 해보십시오. withColumn/udf을 5 번 수행 한 다음 select을 수행해야합니다. 1 map 기능을 사용하면이 모든 작업을 수행 할 수 있습니다.

+0

하나의 열만 처리하는 경우'map'보다'withColumn' /'udf'를 사용하는 것이 더 효율적입니까? – spiffman

+0

일반적으로 RDD에서 데이터 프레임을 생성하면 약간의 오버 헤드가 발생하므로'withColumn' /'udf'가 더 효율적이어야합니다. 자세한 내용을 보려면 zero323의 응답이 도움이 될 것입니다. http://stackoverflow.com/q/38860808/1560062 – David