반응형
csv, parquet파일 읽어오기
1 2 3 4 5 6 7 8 9 10 | # CSV 파일 읽기 df = spark.read.csv("...") df.printSchema() df.show() # parquet으로 저장된 파일 읽기 df2 = spark.read.parquet("...") df2.printSchema() df2.show() |
agg(*exprs)
exprs에 들어있는 표현식으로 dataframe 계산
"age" : "max" -> age column에서 최대값을 반환
1 2 3 4 5 6 | df.agg({"age": "max"}).collect() >>> [Row(max(age) = 5)] from pyspark.sql import functions as F df.agg(F.min(df.age)).collect() >>> [Row(min(age) = 2)] |
alias(alias)
지정된 dataframe과 같은 dataframe을 생성
1 2 3 4 5 6 | from pyspark.sql.functions import * df_as1 = df.alias("df_as1") df_as2 = df.alias("df_as2") joined_df = df_as1.join(df_as2. col("df_as1.name") == col("df_as2.name"), 'inner') joined_df.select("df_as1.name", "df_as2.name", "df_as2.age").collect() >>>[Row(name='Bob', name='Bob', age=5), Row(name='Alice', name='Alice', age=2)] |
cache()
일하면서 알게된것인데 SQL구문으로 dataframe을 만들면 그뒤에 한번액션을 취할때마다 dataframe이 만들어지고 해당 액션이 끝나게되면 메모리상에서 사라지게된다. 따라서 자주 불리게되는 dataframe같은 경우에는 cache라는 함수를 사용하여 메모리에 남겨두는게 실행속도에 많은 도움이 된다
1 | df_as1.cache() |
collect()
해당 dataframe의 모든 row를 반환해준다
1 2 | df.collect() >>> [Row(age=2, name='Alice'), Row(age=5, name='Bob')] |
columns
해당 dataframe의 모든 columns name을 반환한다
1 2 | df.columns >>> ['age', 'name'] |
corr(col1, col2, method=None)
두개의 column의 correlation을 계산한다 col1, col2가 없을경우에는 모든column끼리 correlation계산
count()
해당 dataframe의 모든 row수를 반환
1 2 | df.count() >>> 2 |
describe(*cols)
지정된 column의 정보를 표시해준다. 여기서 정보는 count, mean, stddev, min, max가 포함되어있다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | >>> df.describe(['age']).show() +-------+------------------+ |summary| age| +-------+------------------+ | count| 2| | mean| 3.5| | stddev|2.1213203435596424| | min| 2| | max| 5| +-------+------------------+ >>> df.describe().show() +-------+------------------+-----+ |summary| age| name| +-------+------------------+-----+ | count| 2| 2| | mean| 3.5| null| | stddev|2.1213203435596424| null| | min| 2|Alice| | max| 5| Bob| +-------+------------------+-----+ |
반응형
'Data > Data Analysis' 카테고리의 다른 글
[Pyspark] pyspark 함수 정리(3) (0) | 2019.01.15 |
---|---|
[Pyspark] pyspark 함수 정리(2) (0) | 2019.01.11 |
[SQL] OVER함수 및 PARTITION BY 사용법 (0) | 2019.01.07 |
[SQL]collect_list 함수 사용 (0) | 2019.01.07 |
[SQL] strptime 함수 사용하기 (0) | 2018.12.27 |