빅데이터

빅데이터 - 8. 자동차 온실가스 분석

IT의 큰손 2023. 1. 17. 16:38
728x90

1. 분석 내용

  • 차량, 브랜드별 탄소(온실가스) 배출량은 어느정도가 되는가?
  • 전기차 시대의 규모가 점점 커짐에 따라 내연기관 차에서 발생하는 온실가스의 양을 알아보고, 과징금을 부여하여 본다.
  • ※ 실제 통계된 내용은 정확한 자료가 아닐 수 있으며, 정확한 통계가 아닐 수 있습니다.

1.1 분석 1

차량 별 온실가스 배출량

1.2 분석 2

  • 승용차 브랜드 5가지, 트럭 브랜드 3가지, 버스 브랜드 3가지를 선정
  • 선정 브랜드
    • 승용차 : 현대, 기아, 벤츠, bmw, 지프
    • 트럭 : 현대, MAN, Volvo
    • 버스 : 현대, 기아, 대우
  • 각 브랜드별 차량을 3대씩 임의로 선정하여 33가지의 데이터를 모았다.
  • 속성 값 : 번호/자동차종류/브랜드/자동차이름/연료/배기량/평균연비/탄소배출량/기준배출량 으로 정리

1.3 분석 3

  • 각각의 브랜드와 차량 종류 등에 대해 작성하고, 승용차들은 현재 정부 기준 탄소 배출량 97에 맞추었고, 각각의 배기량과 탄소배출량 연료들을 기입하였다.
  • 하지만, 트럭과 버스의 경우 현재 탄소배출량을 정확하게 알 수 없었다. 따라서, 연료 절감장치를 달지 않았다고 가정하고 추산하였고, (최소값,최대값)x1/2하여 중간 값으로 추산하였다.

 

2.1 데이터 생성

  • Pyspark를 통해 데이터 생성
    • Spark 세션 빌더를 통하여 spark에 대한 프레임을 생성하였고, 그 데이터 프레임 안에 이전에 보았던 표에 대한 튜플들과 속성들을 삽입하여 df라는 릴레이션을 생성하였다.
    •  

데이터 생성

2.2 데이터 생성2

  • 초과량이라는 속성값을 삽입
    • df1 = df.withColumn
    • ("초과량", df.기준배출량-df.탄소배출량)
    • 즉, df1이라는 데이터에 df의 기준 배출량 - df의 탄소배출량을 연산하여 초과량이라는 새로운 속성값 생성
    • 초과량이라는 튜플들이 새롭게 삽입되었고, 해당 수치가 정확하게 나왔다.
    •  

초과량 속성값 생성

 

3.1 데이터 프레임 연산

  • 초과량이 넘지 않은 정상적인 차들
    • 초과량 = (기준 배출량 - 탄소배출량) = N
    • df1.filter(df1.초과량 >=0).show
    • df1.filter(df1.초과량 <=0).show
    • 즉, 초과량 N이 음수의 값을 갖게 된다면 기준 배출량을 초과한 차량이고, 양수의 값을 갖게 된다면 기준 배출량을 충족한 차량이 된다.
    •  

초과량이 넘지 않은 차량들

  • 초과량이 가장 많은 차량은?
    • df3.sort("초과량").show()
    • 초과량을 기준으로 가장 값이 큰 순서로 나열하여 확인하여 보았다.
    • 그 결과 트럭 MAN차의 TGX 640, Volvo의 FH-285, 기아의 그랜버드 순인 것으로 볼 수 있다.
    •  

초과량이 가장 많은 순서

  • 스포츠카는 어떨까?
    • 연비가 안좋기로 소문난 대표적인 스포츠카 한대를 데이터 프레임에 삽입하여 보았다.
    • spark.createDataFrame을 이용하여 튜플을 생성한 후, union을 통해 df3를 만들어 냈다.
    •  

스포츠카 튜플 삽입 및 합침

  • 가장 많이 초과하는 자동차 종류는?
    • groupBy("자동차종류").sum("초과량").show(truncate=False)
    • 자동차 종류의 속성을 기준으로 그룹화하여 초과량을 합산
    • 그 결과 스포츠카, 트럭, 승용차, 버스 순이다
    •  

가장 많이 초과하는 자동차 종류

  • 가장 많이 초과하는 브랜드?
    • 이전과 마찬가지로, groupBy를 사용하여, 초과량에 대한 합산
    • 그 결과, MAN, Volvo, 람보르기니 순이다.
    •  

가장 많이 초과하는 브랜드

  • 연료와 연비의 초과량
    • 평균 연비 별로 살펴 보았을 때, 차량마다 다르긴 하지만
    • 평균 초과량이 대체적으로 연비가 낮을 수록 많은 초과량을 보이는 것을 볼 수 있다.
    •  

연료와 연비의 초과량

  • 초과량에 대한 과징금 부여
    • 초과량에 대한 과징금을 부여하는 속성 값을 삽입하여 보았다.
    • 과징금 = 초과량*50000
    • df4라는 데이터 프레임을 생성, 그 안에 과징금이라는 속성을 삽입하고, 속성 값은 초과량*50000으로 한다.
    •  

초과량에 대한 과징금 부여

  • 과징금 높은 순서, 낮은 순서
    • 초과량을 넘지 않은 차량들은 마이티, 그린시티, 카운티, BH090
    • 과징금이 높은 상위 3개는 MAN TGX 640이 25,150,000원, Volvo FH가 14,250,000원, 기아의 그랜버드가 14,000,000원 이다.
    •  

과징금 순서

  • 과징금이 가장 많은 브랜드는?
    • df4.groupBy("브랜드").sum("과징금").show(truncate=False)
    • 가장 많은 과징금 브랜드는 MAN차로 50,350,000원으로 가장 많은 것을 알 수 있었다.
    •  

과징금이 가장 많은 브랜드

 

 

728x90