20151205 Japan.R SparkRとParquet

8

Click here to load reader

Transcript of 20151205 Japan.R SparkRとParquet

Page 1: 20151205 Japan.R SparkRとParquet

SparkR and ParquetRyuji Tamagawa from Osaka

Japan.R 2015

Page 2: 20151205 Japan.R SparkRとParquet

Who am I ?

Page 3: 20151205 Japan.R SparkRとParquet

Works of 2015

Sparkによる 実践データ解析 2016年1月発売予定

Page 4: 20151205 Japan.R SparkRとParquet

前処理、困っていませんか?

Page 5: 20151205 Japan.R SparkRとParquet

SparkR

Rの環境からSparkでデータ処理できます

Rで処理しやすい(主にサイズ)ところまでデータを前処理するのに便利!

SparkRのDataFrameをRのDataFrameに変換可能 高柳さん・牧山さんの

「SparkRについて」 収録

Page 6: 20151205 Japan.R SparkRとParquet

Parquet

ビッグデータ関係で一般的になりつつあるデータフォーマット

列指向

高度な圧縮

SparkRから簡単に読み書きできます

高速

http://parquet.apache.org

Page 7: 20151205 Japan.R SparkRとParquet

DemonstrationCSVを変換してみました

10GBのデータが300MB程度になりました

いったんParquetにするのにノートPCで数時間(Pythonでやってます)

変換できてしまえば、3000万件のデータからダウンサンプリングも楽勝

https://spark.apache.org/docs/latest/sparkr.html#selecting-rows-columns

Sys.setenv(SPARK_HOME="/usr/local/opt/spark").libPaths(c(file.path(Sys.getenv("SPARK_HOME"),"R","lib"), .libPaths()))library(SparkR)sc <- sparkR.init(master="local")sqlContext <- sparkRSQL.init(sc)df = read.df(sqlContext, ‘/Users/…/foo.parquet’)count(df)df_sel <- select(df, “bar”, “baz”)df_sampled <- sample(df_sel, FALSE, 0.01)dfR <- collect(df_sampled)

Page 8: 20151205 Japan.R SparkRとParquet

ご静聴ありがとうございました。