본문 바로가기

나 취준생/리눅스

scala에서 sql문을 실행한 결과를 파이썬에서 사용하기

320x100

리눅스 내에 있는 scott 계정의 공유 폴더를 통해 들어있는 Case.csv 파일을 파이썬에서 시각화하기


먼저 리눅스에서


cd /home/scott

cp Case.csv Case.txt

# csv 파일을 txt 파일로 복사


spark-shell

# scala 접속


scala>

val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)

# sql 문법을 사용하겠다.


sqlContext.sql("""create table IF NOT EXISTS doong

(caseid int, province string, city string, group string, infection string, confirmed int, latitude float, longitude float)

ROW FORMAT DELIMITED  FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'""")

# Case.csv의 컬럼 형태를 따라 테이블 생성

# 블로그에 짤려서 표시되서 코드를 수정했는데,

혹시 오류가 발생하면 """ 을 " 한 개로 줄이고, 엔터를 전부 없애서 한 줄로 넣으면 됨


sqlContext.sql("LOAD DATA LOCAL INPATH '/home/scott/Case.txt' INTO TABLE doong")

# Case.txt를 방금 만든 테이블에 로드


sql("select * from doong").show()

# 잘 들어갔는지 확인


sqlContext.sql("""select  province , sum(confirmed) from doong where confirmed is not null group by province")

.coalesce(1).write.option("header","true").option("sep",",").mode("overwrite").csv("/home/scott/zz")

# 시각화하고 싶은 지역별 감염자 수를 보여주는 sql문을 실행하고 그 결과를 csv 형태로 zz라는 디렉토리 안에 저장

# 마찬가지로 오류가 발생하면 " 한 개로 줄이고 엔터 없애서 한 줄로


리눅스 창에서
cd /home/scott/zz

# zz 디렉토리로 이동


mv p + 탭키 final.csv
# part~ 뭐시기로 길게 저장되어 있는데, 이를 보기 좋게 final.csv로 이름 변경


spyder
# 스파이더 실행


import pandas as pd
case = pd.read_csv("/home/scott/zz/final.csv")
#print(case)
result=case['sum(confirmed)']
#print(result)
result.index=case['province']
result.plot(kind='bar',color='skyblue')



반응형

'나 취준생 > 리눅스' 카테고리의 다른 글

spark에 테이블 올리고, SQL 수행하는 법  (0) 2021.01.12
리눅스 특정 텍스트 치환  (0) 2021.01.08
hive  (0) 2021.01.08
리눅스 현재 디렉토리로 복사할 때 팁  (0) 2021.01.07
하둡  (0) 2021.01.07