강의

멘토링

커뮤니티

Inflearn Community Q&A

daesoonb5201's profile image
daesoonb5201

asked

The Complete Guide to Spark Machine Learning - Part 1

Understanding the filter() Method

filter 이후 select 와 이전 select 차이점

Written on

·

226

0

 

안녕하세요 선생님 강의 말미에 select 의 순서가 중요하다고 가르쳐 주셨는데

실제로 실행해보니까 결과값은 동일해보이는건 어떤 이유 때문인지 궁금합니다.

(혹시나 싶어서 조회할 때마다 전체 테이블을 같이 조회해봤습니다.)

 

-----------------------------

data_sdf.filter(upper(data_sdf['Name']).like('%M%')).select('*').show()

data_sdf.select('*').show()

+---------+----+------+ | Name|Year|Gender| +---------+----+------+ | Chulmin|2011| Male| |Myunghyun|2015| Male| | Chulman|2011| Male| +---------+----+------+ +---------+----+------+ | Name|Year|Gender| +---------+----+------+ | Chulmin|2011| Male| | Wansoo|2016| Male| |Myunghyun|2015| Male| | Hyunjoo|2015|Female| | Chulman|2011| Male| +---------+----+------+

-------------------------

from pyspark.sql.functions import col, upper data_sdf.select('*').filter(upper(col('Name')).like('%M%')).show() data_sdf.select('*').show()

+---------+----+------+ | Name|Year|Gender| +---------+----+------+ | Chulmin|2011| Male| |Myunghyun|2015| Male| | Chulman|2011| Male| +---------+----+------+ +---------+----+------+ | Name|Year|Gender| +---------+----+------+ | Chulmin|2011| Male| | Wansoo|2016| Male| |Myunghyun|2015| Male| | Hyunjoo|2015|Female| | Chulman|2011| Male| +---------+----+------+

 

---------------------------

항상 좋은 강의 감사합니다.

데이터 엔지니어링apache-spark머신러닝 배워볼래요? bigdata

Answer 1

0

dooleyz3525님의 프로필 이미지
dooleyz3525
Instructor

안녕하십니까, 

위에서 적어주신 코드는 별 문제가 없지만, 

data_sdf.select('Year', 'Gender').filter(upper(data_sdf['Name']).like('%M%')) 이라고 하면 수행이 안됩니다.  위 코드는 data_sdf.select('Year', 'Gender') 에서 두개의 컬럼 'Year'와 'Gender'를 추출한 뒤에 이 2개의 컬럼에 해당하지 않는 'Name' 컬럼으로 filtering을 수행하기 때문입니다. 

마치 아래 SQL과 같이 이미 Year, Gender밖에 없는 temp_01 에서 Name 컬럼으로 필터링을 시도하려는 것과 같기 때문에 수행이 되지 않습니다. 

with temp_01

as

select  Year, Gender

from table a

select  * from temp_01 where Name like '%M' 

 

감사합니다. 

 

daesoonb5201님의 프로필 이미지
daesoonb5201
Questioner

그냥 우연이었나보네요............. 늦은시간인데 감사합니다~

daesoonb5201's profile image
daesoonb5201

asked

Ask a question