본문 바로가기

Data/Data Analysis

[Pyspark] DataFrame 조작 명령어 정리

반응형



* Pandas의 DataFrame과는 다른 것이다

type을 쳐보면


pyspark의 dataframe인경우: pyspark.sql.dataframe.DataFrame

pandas의 dataframe인경우: pandas.core.frame.DataFrame


로 나오게 된다. 따라서 pandas에서 썻던 명령어들은 pyspark의 dataframe에 적용이 안된다


Show the Data

pyspark를 통해서 읽어들어온 데이터는 show명령어로 dataframe을 볼 수가 있다

dfs.show()
+----+------+--------+
|age | id   |  name  |
+----+------+--------+
| 25 | 1201 | satish |
| 28 | 1202 | krishna|
| 39 | 1203 | amith  |
| 23 | 1204 | javed  |
| 23 | 1205 | prudvi |
+----+------+--------+


show에는 두가지 인자를 넣을 수가 있다

예를들어 show(5, False)일 경우 앞의 5개 데이터셋을 보여주고 False는 요약하지않고 모든 스트링을 출력한다는 의미


PrintSchema

dfs.printSchema()

root
   |-- age: string (nullable = true)
   |-- id: string (nullable = true)
   |-- name: string (nullable = true)


dataframe에 각 column별 형식을 출력


Select


dfs.select('name').show()

+--------+
|  name  |
+--------+
| satish |
| krishna|
| amith  |
| javed  |
| prudvi |
+--------+


특정 column을 지정해서 dataframe 출력


Filter

dfs.filter(dft('age') > 23).show()

+----+------+--------+
|age | id   | name   |
+----+------+--------+
| 25 | 1201 | satish |
| 28 | 1202 | krishna|
| 39 | 1203 | amith  |
+----+------+--------+


조건문을 걸어서 dataframe 조작(SQL의 WHERE과 유사)


groupBy

dfs.groupBy("age").count().show()
+----+-----+
|age |count|
+----+-----+
| 23 |  2  |
| 25 |  1  |
| 28 |  1  |
| 39 |  1  |
+----+-----+


SQL문법과 같이 특정 카테고리로 묶어서 다양한 연산 가능

반응형

'Data > Data Analysis' 카테고리의 다른 글

[SQL]collect_list 함수 사용  (0) 2019.01.07
[SQL] strptime 함수 사용하기  (0) 2018.12.27
[SQL] UNION, JOIN명령어  (1) 2018.12.18
[SQL] Group by 명령어  (0) 2018.11.26
[SQL] SELECT 명령어 모음  (0) 2018.11.26