SlideShare una empresa de Scribd logo
1 de 23
© 2020, Amazon Web Services, Inc. or its Affiliates.
Noritaka Sekiyama
Big Data Architect, AWS Glue & Lake Formation
2020/7/31
Spark にプルリクを投げてみた
© 2020, Amazon Web Services, Inc. or its Affiliates.
自己紹介
関山 宜孝
Big Data Architect
AWS Glue & Lake Formation
• GlueとLake Formationの
ユーザーに近い部分の開発を担当
• 5年間 AWS サポートにて技術支援を担当
• 2019年からプロダクト開発チームにジョイン
@moomindani moomindaniNoritakaS-AWS
Forum
© 2020, Amazon Web Services, Inc. or its Affiliates.
AWS x Apache Spark
AWS Glue = サーバーレス Apache Spark 実行環境
• Glue Spark Job x Spark DataFrame, Spark SQL
• Glue Streaming Job x Spark Structured Streaming
Amazon EC2 Amazon EMR AWS Glue
© 2020, Amazon Web Services, Inc. or its Affiliates.
Spark にプルリクを投げようと思ったきっかけ
• きっかけ
• AWS のお客様からの問い合わせ
• AWS のプロダクト開発時の問題解決
• サポートチーム時代
• 日々たくさんの異常系を目にする
• OSS の実運用上の問題やフィードバックをよく知っている
• 不具合を修正したり、トラブルシューティングをやりやすくす
るためのモチベーションが強い
• プロダクトチーム時代
• プロダクトが Apache Spark に Deep に依存している
• Apache Spar kへの貢献がプロダクト改善にもつながる
© 2020, Amazon Web Services, Inc. or its Affiliates.
現在進めているプルリク / Issue
• SPARK-21514: Added a new option to use non-blobstore
storage when writing into blobstore storage
https://github.com/apache/spark/pull/27690
• SPARK-32013: Support query execution before reading
DataFrame and before/after writing DataFrame over JDBC
https://github.com/apache/spark/pull/28953/
• SPARK-32432: Add support for reading ORC/Parquet files with
SymlinkTextInputFormat
https://issues.apache.org/jira/browse/SPARK-32432
© 2020, Amazon Web Services, Inc. or its Affiliates.
SPARK-21514: Amazon S3 等の Blobstore 向けの最適化
• Spark でテーブルにデータを書き込むとき、一時ファイルをつくって
最後に Rename する。
• S3 上のテーブルに対しても S3 に一時ファイルをつくる。
• HDFS の Rename: メタデータのみの操作
• S3 の Rename: N 回のデータコピーおよび元データの削除
© 2020, Amazon Web Services, Inc. or its Affiliates.
SPARK-21514: Amazon S3 等の Blobstore 向けの最適化
• このパッチは一時ファイルを HDFS に、結果ファイルを S3 に出力す
るようにする。
• 新オプションを追加:
• spark.sql.hive.supportedSchemesToUseNonBlobstore=s3,s3a,s3n
• (効果は未検証であるものの)同様の性質をもつ他の DFS でも使用可能
• 期待される効果
• パフォーマンスの向上
• S3 API のコストの削減
• S3 結果整合性の影響の低減
© 2020, Amazon Web Services, Inc. or its Affiliates.
SPARK-32013: JDBC データソースの read/write の便利機能
• Spark を ETL に使いたい場合、DataFrame の read/write の前後に
JDBC 接続先データソースに任意のクエリを実行したいときがある。
• レコードの追加/更新/削除
• View の作成
• Stored Procedure の実行など
• このパッチは DataFrame の read 前、write 前後に任意のクエリを
実行できるようにする。
• パラメータを追加: preActions, postActions
© 2020, Amazon Web Services, Inc. or its Affiliates.
SPARK-32013: JDBC データソースの read/write の便利機能
val preSQL = "drop view if exists PEOPLEVIEW; " +
"create view PEOPLEVIEW as select * from PEOPLE where name='mary’”
val df = spark.read.format("jdbc")
.option("url",
"jdbc:h2:mem:testdb0;user=testUser;password=testPass")
.option("dbtable", "PEOPLEVIEW")
.option("preActions", preSQL)
.load()
df.show()
© 2020, Amazon Web Services, Inc. or its Affiliates.
SPARK-32013: JDBC データソースの read/write の便利機能
val postSQL = "insert into TEST.CUSTOMQUERY values ('fred', 1)”
df.write.format("jdbc")
.option("Url", "jdbc:h2:mem:testdb3")
.option("dbtable", "TEST.CUSTOMQUERY")
.option("postActions", postSQL)
.options(properties.asScala)
.save()
© 2020, Amazon Web Services, Inc. or its Affiliates.
SPARK-32432: ORC/Parquet の symlink.txt 対応
• SymlinkTextInputFormat (symlink.txt manifest) は複数の分析エ
ンジンで使用できる共通フォーマット
• Spark では、テキストファイル (JSON, CSV, etc.) では動作す
る一方、ORC/Parquet では動作しない。
• prestodb/prestosql ではいずれも動作する。
• Amazon Athena や S3 Inventory でも使われている。
• このパッチは ORC/Parquet でも SymlinkTextInputFormat を使用
できるようにする。
© 2020, Amazon Web Services, Inc. or its Affiliates.
SPARK-32432: ORC/Parquet の symlink.txt 対応
hdfs://path_to_warehouse/symlink_table/dt=20200731/symlink.txt
CREATE TABLE symlink_table(
a BIGINT,
b BIGINT,
c BIGINT
)
PARTITIONED BY (dt STRING)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
hdfs://path_to_parquet_data/data1.parquet
hdfs://path_to_parquet_data/data2.parquet
hdfs://path_to_parquet_data/data3.parquet
© 2020, Amazon Web Services, Inc. or its Affiliates.
プルリクを送ってみて
• よかったこと
• Apache Spark のコードベースの知識が深まった
• Apache Spark の開発プロセスの理解が深まった
• Spark コミュニティは優しい
• 反省
• ファイルの diff はもっと注意深くチェックするべきだった
• Newer is better
• 感想
• 当初思ったほどハードルは高くなかった
• 広く使われるソフトウェアに直接的に関わるのは楽しい
© 2020, Amazon Web Services, Inc. or its Affiliates.
Spark に
ソースコードがマージされるまで
© 2020, Amazon Web Services, Inc. or its Affiliates.
Spark にソースコードがマージされるまでのステップ
1. アイデアを見つける
2. 実装・テストする
3. プルリクを送る
4. コードレビューを受けて修正する
5. マージされる
© 2020, Amazon Web Services, Inc. or its Affiliates.
1. アイデアを見つける
• トラブルシューティングしてたら不具合を見つけた
• やりたいことを実現する機能/ドキュメントがなかった
• 現在の制限がブロッカーになった
• Spark JIRA から興味のある Issue を見つけた
© 2020, Amazon Web Services, Inc. or its Affiliates.
2. 実装・テストする
• リポジトリをフォーク
• フォークしたリポジトリをクローン
• パッチ用のブランチを作成
$ git clone git@github.com:moomindani/spark.git
$ cd spark
$ git branch SPARK-xxxxx
$ git checkout SPARK-xxxxx
© 2020, Amazon Web Services, Inc. or its Affiliates.
2. 実装・テストする
• 実装する
• Mac x IntelliJ IDEA の人が多そう
• ビルドする
• テストする
$ ./build/sbt
> project hive
> testOnly *HogeHogeSuite
$ ./build/sbt “project hive” ”testOnly *HogeHogeSuite”
© 2020, Amazon Web Services, Inc. or its Affiliates.
2. 実装・テストする
• Building Spark
https://spark.apache.org/docs/latest/building-spark.html
• Developer Tools
https://spark.apache.org/developer-tools.html
© 2020, Amazon Web Services, Inc. or its Affiliates.
3. プルリクを送る
• パッチをコミット&プッシュ
• GitHub 上でプルリクエストを作成
$ git commit –m “[SPARK-21514] Fixed xxx bug”
$ git push
© 2020, Amazon Web Services, Inc. or its Affiliates.
4. コードレビューを受けて修正する
• コードレビューを受ける
• 修正パッチをコミット&プッシュ
© 2020, Amazon Web Services, Inc. or its Affiliates.
5. マージされる
© 2020, Amazon Web Services, Inc. or its Affiliates.
参考
• Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015)
https://www.slideshare.net/hadoopxnttdata/apache-spark-
commnity-nttdata-sarutak

Más contenido relacionado

La actualidad más candente

AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAmazon Web Services Japan
 
20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...
20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...
20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...Amazon Web Services Japan
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Noritaka Sekiyama
 
20201207 AWS Black Belt Online Seminar AWS re:Invent 2020 速報 Part1
20201207 AWS Black Belt Online Seminar AWS re:Invent 2020 速報 Part120201207 AWS Black Belt Online Seminar AWS re:Invent 2020 速報 Part1
20201207 AWS Black Belt Online Seminar AWS re:Invent 2020 速報 Part1Amazon Web Services Japan
 
Webサービス向け、クラウドデザインパターン:アンチパターン紹介
Webサービス向け、クラウドデザインパターン:アンチパターン紹介Webサービス向け、クラウドデザインパターン:アンチパターン紹介
Webサービス向け、クラウドデザインパターン:アンチパターン紹介Yasuhiro Araki, Ph.D
 
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のことDay 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のことAmazon Web Services Japan
 
Aurora新時代の幕開けとDynamoDBの進化
Aurora新時代の幕開けとDynamoDBの進化Aurora新時代の幕開けとDynamoDBの進化
Aurora新時代の幕開けとDynamoDBの進化Classmethod,Inc.
 
The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発Amazon Web Services Japan
 
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...Amazon Web Services Japan
 
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-Amazon Web Services Japan
 
20170418 aws black-belt-architecture_pattern_of_serverless
20170418 aws black-belt-architecture_pattern_of_serverless20170418 aws black-belt-architecture_pattern_of_serverless
20170418 aws black-belt-architecture_pattern_of_serverlessAmazon Web Services Japan
 
[MANABIYA] 20180323 Amazon Aurora with PostgreSQL Compatibility
[MANABIYA] 20180323 Amazon Aurora with PostgreSQL Compatibility[MANABIYA] 20180323 Amazon Aurora with PostgreSQL Compatibility
[MANABIYA] 20180323 Amazon Aurora with PostgreSQL CompatibilityAmazon Web Services Japan
 
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報Amazon Web Services Japan
 
aws lambdaでpythonを実行するときのチューニング案を試してみた!
aws lambdaでpythonを実行するときのチューニング案を試してみた!aws lambdaでpythonを実行するときのチューニング案を試してみた!
aws lambdaでpythonを実行するときのチューニング案を試してみた!Shun Fukazawa
 
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)Amazon Web Services Japan
 
【JAWS-UG東京発表資料】AWS Summit Tokyo 2018の振り返りと最新アップデート
【JAWS-UG東京発表資料】AWS Summit Tokyo 2018の振り返りと最新アップデート【JAWS-UG東京発表資料】AWS Summit Tokyo 2018の振り返りと最新アップデート
【JAWS-UG東京発表資料】AWS Summit Tokyo 2018の振り返りと最新アップデートAmazon Web Services Japan
 
AWS Black Belt Techシリーズ AWS Data Pipeline
AWS Black Belt Techシリーズ  AWS Data PipelineAWS Black Belt Techシリーズ  AWS Data Pipeline
AWS Black Belt Techシリーズ AWS Data PipelineAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAmazon Web Services Japan
 

La actualidad más candente (20)

AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
 
20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...
20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...
20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
 
20201207 AWS Black Belt Online Seminar AWS re:Invent 2020 速報 Part1
20201207 AWS Black Belt Online Seminar AWS re:Invent 2020 速報 Part120201207 AWS Black Belt Online Seminar AWS re:Invent 2020 速報 Part1
20201207 AWS Black Belt Online Seminar AWS re:Invent 2020 速報 Part1
 
AWS ML Update
AWS ML UpdateAWS ML Update
AWS ML Update
 
Webサービス向け、クラウドデザインパターン:アンチパターン紹介
Webサービス向け、クラウドデザインパターン:アンチパターン紹介Webサービス向け、クラウドデザインパターン:アンチパターン紹介
Webサービス向け、クラウドデザインパターン:アンチパターン紹介
 
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のことDay 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
 
Aurora新時代の幕開けとDynamoDBの進化
Aurora新時代の幕開けとDynamoDBの進化Aurora新時代の幕開けとDynamoDBの進化
Aurora新時代の幕開けとDynamoDBの進化
 
The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発The Twelve-Factor Appで考えるAWSのサービス開発
The Twelve-Factor Appで考えるAWSのサービス開発
 
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
 
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
20210330 AWS Black Belt Online Seminar AWS Glue -Glue Studioを使ったデータ変換のベストプラクティス-
 
20170418 aws black-belt-architecture_pattern_of_serverless
20170418 aws black-belt-architecture_pattern_of_serverless20170418 aws black-belt-architecture_pattern_of_serverless
20170418 aws black-belt-architecture_pattern_of_serverless
 
[MANABIYA] 20180323 Amazon Aurora with PostgreSQL Compatibility
[MANABIYA] 20180323 Amazon Aurora with PostgreSQL Compatibility[MANABIYA] 20180323 Amazon Aurora with PostgreSQL Compatibility
[MANABIYA] 20180323 Amazon Aurora with PostgreSQL Compatibility
 
Reinvent2017 recap-overview-pdf
Reinvent2017 recap-overview-pdfReinvent2017 recap-overview-pdf
Reinvent2017 recap-overview-pdf
 
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
 
aws lambdaでpythonを実行するときのチューニング案を試してみた!
aws lambdaでpythonを実行するときのチューニング案を試してみた!aws lambdaでpythonを実行するときのチューニング案を試してみた!
aws lambdaでpythonを実行するときのチューニング案を試してみた!
 
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
 
【JAWS-UG東京発表資料】AWS Summit Tokyo 2018の振り返りと最新アップデート
【JAWS-UG東京発表資料】AWS Summit Tokyo 2018の振り返りと最新アップデート【JAWS-UG東京発表資料】AWS Summit Tokyo 2018の振り返りと最新アップデート
【JAWS-UG東京発表資料】AWS Summit Tokyo 2018の振り返りと最新アップデート
 
AWS Black Belt Techシリーズ AWS Data Pipeline
AWS Black Belt Techシリーズ  AWS Data PipelineAWS Black Belt Techシリーズ  AWS Data Pipeline
AWS Black Belt Techシリーズ AWS Data Pipeline
 
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
 

Similar a Sparkにプルリク投げてみた

SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理Oshitari_kochi
 
Databricks の始め方
Databricks の始め方Databricks の始め方
Databricks の始め方Ryoma Nagata
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したことAmazon Web Services Japan
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Amazon Web Services Japan
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...NTT DATA Technology & Innovation
 
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpacesAmazon Web Services Japan
 
サーバーワークス re:invent_2016~新サービス・アップデート紹介~
サーバーワークス re:invent_2016~新サービス・アップデート紹介~サーバーワークス re:invent_2016~新サービス・アップデート紹介~
サーバーワークス re:invent_2016~新サービス・アップデート紹介~Serverworks Co.,Ltd.
 
Scala: Mobile Backend on AWS
Scala: Mobile Backend on AWSScala: Mobile Backend on AWS
Scala: Mobile Backend on AWScmaraiyusuke
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係Hiraku Komuro
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨Amazon Web Services Japan
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しAkira Nagata
 
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介Yukitaka Ohmura
 
May the FaaS be with us!!
May the FaaS be with us!!May the FaaS be with us!!
May the FaaS be with us!!真吾 吉田
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...Amazon Web Services Japan
 
CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)Shin Matsumoto
 
01_2021年上半期 AWS IoT サービスアップデート
01_2021年上半期 AWS IoT サービスアップデート01_2021年上半期 AWS IoT サービスアップデート
01_2021年上半期 AWS IoT サービスアップデートAmazon Web Services Japan
 
Windows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSWindows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSAmazon Web Services Japan
 

Similar a Sparkにプルリク投げてみた (20)

SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
 
Databricks の始め方
Databricks の始め方Databricks の始め方
Databricks の始め方
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
 
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
 
Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2Gaming cicd-pipeline gaming-technight-2
Gaming cicd-pipeline gaming-technight-2
 
サーバーワークス re:invent_2016~新サービス・アップデート紹介~
サーバーワークス re:invent_2016~新サービス・アップデート紹介~サーバーワークス re:invent_2016~新サービス・アップデート紹介~
サーバーワークス re:invent_2016~新サービス・アップデート紹介~
 
Scala: Mobile Backend on AWS
Scala: Mobile Backend on AWSScala: Mobile Backend on AWS
Scala: Mobile Backend on AWS
 
LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係LambdaとMobileの美味しいかもしれない関係
LambdaとMobileの美味しいかもしれない関係
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
 
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
(AWS DevOps祭り 2018) AWS Management Toolsサービスアプデートのご紹介
 
May the FaaS be with us!!
May the FaaS be with us!!May the FaaS be with us!!
May the FaaS be with us!!
 
CData General Proposal
CData General ProposalCData General Proposal
CData General Proposal
 
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...20161027 hadoop summit  Generating Recommendations at Amazon Scale with Apach...
20161027 hadoop summit Generating Recommendations at Amazon Scale with Apach...
 
CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)CloudSpiral 2014年度 Webアプリ講義(2日目)
CloudSpiral 2014年度 Webアプリ講義(2日目)
 
01_2021年上半期 AWS IoT サービスアップデート
01_2021年上半期 AWS IoT サービスアップデート01_2021年上半期 AWS IoT サービスアップデート
01_2021年上半期 AWS IoT サービスアップデート
 
【de:code 2020】 Azure インフラ 最新アップデート!!
【de:code 2020】 Azure インフラ 最新アップデート!!【de:code 2020】 Azure インフラ 最新アップデート!!
【de:code 2020】 Azure インフラ 最新アップデート!!
 
Windows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWSWindows 開発者のための Dev&Ops on AWS
Windows 開発者のための Dev&Ops on AWS
 

Más de Noritaka Sekiyama

5分ではじめるApache Spark on AWS
5分ではじめるApache Spark on AWS5分ではじめるApache Spark on AWS
5分ではじめるApache Spark on AWSNoritaka Sekiyama
 
VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話Noritaka Sekiyama
 
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudAmazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudNoritaka Sekiyama
 
Introduction to New CloudWatch Agent
Introduction to New CloudWatch AgentIntroduction to New CloudWatch Agent
Introduction to New CloudWatch AgentNoritaka Sekiyama
 
Security Operations and Automation on AWS
Security Operations and Automation on AWSSecurity Operations and Automation on AWS
Security Operations and Automation on AWSNoritaka Sekiyama
 
運用視点でのAWSサポート利用Tips
運用視点でのAWSサポート利用Tips運用視点でのAWSサポート利用Tips
運用視点でのAWSサポート利用TipsNoritaka Sekiyama
 
基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャスト基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャストNoritaka Sekiyama
 
Floodlightってぶっちゃけどうなの?
Floodlightってぶっちゃけどうなの?Floodlightってぶっちゃけどうなの?
Floodlightってぶっちゃけどうなの?Noritaka Sekiyama
 

Más de Noritaka Sekiyama (8)

5分ではじめるApache Spark on AWS
5分ではじめるApache Spark on AWS5分ではじめるApache Spark on AWS
5分ではじめるApache Spark on AWS
 
VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話
 
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the CloudAmazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
 
Introduction to New CloudWatch Agent
Introduction to New CloudWatch AgentIntroduction to New CloudWatch Agent
Introduction to New CloudWatch Agent
 
Security Operations and Automation on AWS
Security Operations and Automation on AWSSecurity Operations and Automation on AWS
Security Operations and Automation on AWS
 
運用視点でのAWSサポート利用Tips
運用視点でのAWSサポート利用Tips運用視点でのAWSサポート利用Tips
運用視点でのAWSサポート利用Tips
 
基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャスト基礎から学ぶ? EC2マルチキャスト
基礎から学ぶ? EC2マルチキャスト
 
Floodlightってぶっちゃけどうなの?
Floodlightってぶっちゃけどうなの?Floodlightってぶっちゃけどうなの?
Floodlightってぶっちゃけどうなの?
 

Último

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Último (9)

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Sparkにプルリク投げてみた

  • 1. © 2020, Amazon Web Services, Inc. or its Affiliates. Noritaka Sekiyama Big Data Architect, AWS Glue & Lake Formation 2020/7/31 Spark にプルリクを投げてみた
  • 2. © 2020, Amazon Web Services, Inc. or its Affiliates. 自己紹介 関山 宜孝 Big Data Architect AWS Glue & Lake Formation • GlueとLake Formationの ユーザーに近い部分の開発を担当 • 5年間 AWS サポートにて技術支援を担当 • 2019年からプロダクト開発チームにジョイン @moomindani moomindaniNoritakaS-AWS Forum
  • 3. © 2020, Amazon Web Services, Inc. or its Affiliates. AWS x Apache Spark AWS Glue = サーバーレス Apache Spark 実行環境 • Glue Spark Job x Spark DataFrame, Spark SQL • Glue Streaming Job x Spark Structured Streaming Amazon EC2 Amazon EMR AWS Glue
  • 4. © 2020, Amazon Web Services, Inc. or its Affiliates. Spark にプルリクを投げようと思ったきっかけ • きっかけ • AWS のお客様からの問い合わせ • AWS のプロダクト開発時の問題解決 • サポートチーム時代 • 日々たくさんの異常系を目にする • OSS の実運用上の問題やフィードバックをよく知っている • 不具合を修正したり、トラブルシューティングをやりやすくす るためのモチベーションが強い • プロダクトチーム時代 • プロダクトが Apache Spark に Deep に依存している • Apache Spar kへの貢献がプロダクト改善にもつながる
  • 5. © 2020, Amazon Web Services, Inc. or its Affiliates. 現在進めているプルリク / Issue • SPARK-21514: Added a new option to use non-blobstore storage when writing into blobstore storage https://github.com/apache/spark/pull/27690 • SPARK-32013: Support query execution before reading DataFrame and before/after writing DataFrame over JDBC https://github.com/apache/spark/pull/28953/ • SPARK-32432: Add support for reading ORC/Parquet files with SymlinkTextInputFormat https://issues.apache.org/jira/browse/SPARK-32432
  • 6. © 2020, Amazon Web Services, Inc. or its Affiliates. SPARK-21514: Amazon S3 等の Blobstore 向けの最適化 • Spark でテーブルにデータを書き込むとき、一時ファイルをつくって 最後に Rename する。 • S3 上のテーブルに対しても S3 に一時ファイルをつくる。 • HDFS の Rename: メタデータのみの操作 • S3 の Rename: N 回のデータコピーおよび元データの削除
  • 7. © 2020, Amazon Web Services, Inc. or its Affiliates. SPARK-21514: Amazon S3 等の Blobstore 向けの最適化 • このパッチは一時ファイルを HDFS に、結果ファイルを S3 に出力す るようにする。 • 新オプションを追加: • spark.sql.hive.supportedSchemesToUseNonBlobstore=s3,s3a,s3n • (効果は未検証であるものの)同様の性質をもつ他の DFS でも使用可能 • 期待される効果 • パフォーマンスの向上 • S3 API のコストの削減 • S3 結果整合性の影響の低減
  • 8. © 2020, Amazon Web Services, Inc. or its Affiliates. SPARK-32013: JDBC データソースの read/write の便利機能 • Spark を ETL に使いたい場合、DataFrame の read/write の前後に JDBC 接続先データソースに任意のクエリを実行したいときがある。 • レコードの追加/更新/削除 • View の作成 • Stored Procedure の実行など • このパッチは DataFrame の read 前、write 前後に任意のクエリを 実行できるようにする。 • パラメータを追加: preActions, postActions
  • 9. © 2020, Amazon Web Services, Inc. or its Affiliates. SPARK-32013: JDBC データソースの read/write の便利機能 val preSQL = "drop view if exists PEOPLEVIEW; " + "create view PEOPLEVIEW as select * from PEOPLE where name='mary’” val df = spark.read.format("jdbc") .option("url", "jdbc:h2:mem:testdb0;user=testUser;password=testPass") .option("dbtable", "PEOPLEVIEW") .option("preActions", preSQL) .load() df.show()
  • 10. © 2020, Amazon Web Services, Inc. or its Affiliates. SPARK-32013: JDBC データソースの read/write の便利機能 val postSQL = "insert into TEST.CUSTOMQUERY values ('fred', 1)” df.write.format("jdbc") .option("Url", "jdbc:h2:mem:testdb3") .option("dbtable", "TEST.CUSTOMQUERY") .option("postActions", postSQL) .options(properties.asScala) .save()
  • 11. © 2020, Amazon Web Services, Inc. or its Affiliates. SPARK-32432: ORC/Parquet の symlink.txt 対応 • SymlinkTextInputFormat (symlink.txt manifest) は複数の分析エ ンジンで使用できる共通フォーマット • Spark では、テキストファイル (JSON, CSV, etc.) では動作す る一方、ORC/Parquet では動作しない。 • prestodb/prestosql ではいずれも動作する。 • Amazon Athena や S3 Inventory でも使われている。 • このパッチは ORC/Parquet でも SymlinkTextInputFormat を使用 できるようにする。
  • 12. © 2020, Amazon Web Services, Inc. or its Affiliates. SPARK-32432: ORC/Parquet の symlink.txt 対応 hdfs://path_to_warehouse/symlink_table/dt=20200731/symlink.txt CREATE TABLE symlink_table( a BIGINT, b BIGINT, c BIGINT ) PARTITIONED BY (dt STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' hdfs://path_to_parquet_data/data1.parquet hdfs://path_to_parquet_data/data2.parquet hdfs://path_to_parquet_data/data3.parquet
  • 13. © 2020, Amazon Web Services, Inc. or its Affiliates. プルリクを送ってみて • よかったこと • Apache Spark のコードベースの知識が深まった • Apache Spark の開発プロセスの理解が深まった • Spark コミュニティは優しい • 反省 • ファイルの diff はもっと注意深くチェックするべきだった • Newer is better • 感想 • 当初思ったほどハードルは高くなかった • 広く使われるソフトウェアに直接的に関わるのは楽しい
  • 14. © 2020, Amazon Web Services, Inc. or its Affiliates. Spark に ソースコードがマージされるまで
  • 15. © 2020, Amazon Web Services, Inc. or its Affiliates. Spark にソースコードがマージされるまでのステップ 1. アイデアを見つける 2. 実装・テストする 3. プルリクを送る 4. コードレビューを受けて修正する 5. マージされる
  • 16. © 2020, Amazon Web Services, Inc. or its Affiliates. 1. アイデアを見つける • トラブルシューティングしてたら不具合を見つけた • やりたいことを実現する機能/ドキュメントがなかった • 現在の制限がブロッカーになった • Spark JIRA から興味のある Issue を見つけた
  • 17. © 2020, Amazon Web Services, Inc. or its Affiliates. 2. 実装・テストする • リポジトリをフォーク • フォークしたリポジトリをクローン • パッチ用のブランチを作成 $ git clone git@github.com:moomindani/spark.git $ cd spark $ git branch SPARK-xxxxx $ git checkout SPARK-xxxxx
  • 18. © 2020, Amazon Web Services, Inc. or its Affiliates. 2. 実装・テストする • 実装する • Mac x IntelliJ IDEA の人が多そう • ビルドする • テストする $ ./build/sbt > project hive > testOnly *HogeHogeSuite $ ./build/sbt “project hive” ”testOnly *HogeHogeSuite”
  • 19. © 2020, Amazon Web Services, Inc. or its Affiliates. 2. 実装・テストする • Building Spark https://spark.apache.org/docs/latest/building-spark.html • Developer Tools https://spark.apache.org/developer-tools.html
  • 20. © 2020, Amazon Web Services, Inc. or its Affiliates. 3. プルリクを送る • パッチをコミット&プッシュ • GitHub 上でプルリクエストを作成 $ git commit –m “[SPARK-21514] Fixed xxx bug” $ git push
  • 21. © 2020, Amazon Web Services, Inc. or its Affiliates. 4. コードレビューを受けて修正する • コードレビューを受ける • 修正パッチをコミット&プッシュ
  • 22. © 2020, Amazon Web Services, Inc. or its Affiliates. 5. マージされる
  • 23. © 2020, Amazon Web Services, Inc. or its Affiliates. 参考 • Sparkコミュニティに飛び込もう!(Spark Meetup Tokyo 2015) https://www.slideshare.net/hadoopxnttdata/apache-spark- commnity-nttdata-sarutak