SlideShare ist ein Scribd-Unternehmen logo
1 von 47
PySpark を使用して
パフォーマンスを最適化するには
自己紹介
名前は Holden Karau です
She / Her と呼ばれることを好みます
IBM Spark テクノロジー・センターで、プリンシパル・ソフトウェア・エンジニアを務めています
Alpine、Databricks、Google、Foursquare、および Amazon での勤務経験があります
「Learning Spark & Fast Data processing with Spark」の共著者
来年出版される Spark のパフォーマンスに関する最新の書籍*の共著者
@holdenkarau
Slideshare http://www.slideshare.net/hkarau
本日の説明内容
皆さんについて
PySpark の機能の概要を簡単に説明
RDD の再利用 (キャッシング、永続化レベル、およびチェックポイント機能)
キー・バリュー・データの処理
キーによるグループ化の使用が危険な理由と対処方法
Spark SQL がすばらしい理由
データセットについて (Spark 1.6 の新機能)
Spark 環境の Python から Scala のコードを呼び出す
Torsten Reuschling
Spark のさまざまなコンポーネント
Apache Spark
SQL と
DataFrame
ストリーミング
言語の
API
Scala、
Java、
Python、
および R
グラフ・
ツール
Spark ML Bagel と
Graph X
MLLib
コミュニティー・
パッケージ
Jon
Ross
本日参加されたすばらしい皆さんについて
すばらしい*人々
ネコの写真については気にしないてください
Apache Spark に関する知識がある
Apache Spak のジョブをスケールアップしたい
さまざまなトピックについて説明しますが、詳細にとらわれる必要はありません
Lori Erickson
PySpark の内部構造の説明
Photo by Bill Ward
Scala で Spark の開発を行うと、PySpark は
どのような機能を実現するのか
Py4J + データ変換 + 卓越した手法
これを実施すると、処理スピードが下がる場合があります
RDD は、通常変換したオブジェクトの RDD を指します
Spark SQL (および DataFrame) ではこれらを使用しない
場合があります
処理のプロセスについて
ドライバー
py4j
ワーカー 1
ワーカー K
パイプ
パイプ
これにより、PySpak にどのような影響が発生するのか
Spark のワーカーが提供するデータがシリアライズされ、Python の
ワーカーに渡される
反復子と反復子の間で何度もデータ変換が実施される
シリアライゼーションを二重で実施するため、すべての処理の負荷が
増大する
Python のワーカーを起動するために多少時間がかかる
JVM が Python のメモリーを制御しないため、YARN などを実装
すると、コンテナの上限を簡単に超えてしまう
エラー・メッセージがわかりにくい
その他
猫の写真は以下から取ったものです。 http://galato901.deviantart.com/art/Cat-on-Work-Break-173043455
Photo from Cocoa Dream
従来からあるスタンバイ機能
words = rdd.flatMap(lambda x: x.split(" "))
wordPairs = words.map(lambda w:(w, 1))
grouped = wordPairs.groupByKey()
grouped.mapValues(lambda counts:sum(counts))
warnings = rdd.filter(lambda x: x.lower.find("warning") != -1).count()
Tomomi
RDD の再利用について (標準機能として利用
できるようになりました)
RDD を再利用する予定がある場合は、どうすべきか
メモリーにうまく収まる場合は、メモリー上にキャッシングする
別のレベルで永続化する
「MEMORY」、「MEMORY_AND_DISK」
チェックポイント機能を使用
ノイズを多く含むデータのクラスター
「_2 & checkpointing」が役立つ場合があります
チェックポイント機能のためにまず永続化を行う
Richard Gillin
キーの不均衡とその問題点
キーが均等に分散していない
郵便番号ごとの売上データや都市ごとのレコードなど
groupByKey によって大量の処理が発生する (簡単に処理が中断する)
非常にアンバランスなパーティションが発生することがある
かなりのキーの不均衡が発生すると、sortByKey であっても障害が発生することがある
遅延ノード (不均衡なシャーディングによって一部のタスクの処理時間が他に比べてずっと長くなる場合がある)
Mitchell
Joyce
groupByKey によって発生する問題
非常に大きな問題を引き起こす
同じキーを持つすべてのレコードを単一のレコードにグループ化
すぐに Reduce 演算 (集計処理など) を行った場合でも、上記が発生
データのサイズが大きすぎてメモリーに収まらないため、ジョブで障害が発生する
SQL 使用しなければ、Pandas で処理を効率化できる
PROgeckoam
処理のプロセスについて
(94110, A, B)
(94110, A, C)
(10003, D, E)
(94110, E, F)
(94110, A, R)
(10003, A, R)
(94110, D, R)
(94110, E, R)
(94110, E, R)
(67843, T, R)
(94110, T, R)
(94110, T, R)
(67843, T, R)(10003, A, R)
(94110, [(A, B), (A, C), (E, F), (A, R), (D, R), (E, R), (E, R), (T, R) (T, R)]
Tomomi
RDD を使用した「通常の」ワードカウント・プログラム
lines = sc.textFile(src)
words = lines.flatMap(lambda x: x.split(" "))
word_count =
(words.map(lambda x:(x, 1))
.reduceByKey(lambda x, y: x+y))
word_count.saveAsTextFile(output)
この行より後では、
データの読み取りと処理は
一切行われない
この「アクション」により、
Spark は RDD を
評価する
このようなプログラムは、
同じ Python の
実行プログラム内で
実行される
GroupByKey
reduceByKey
では、どのような対応を行ったのか
reduceByKey
データ型が同じ場合にうまく機能する (この集計を行うプログラムの場合など)
aggregateByKey
データ型が同じである必要がない (統計情報のモデルを計算する場合など)
Spark が Reduce 演算を実施し、リストの作成をスキップすることができる
Map サイドで Reduce 演算を実施することもできる (シャッフルによる読み取り処理の違いに
注意が必要)
問題を引き起こすのはシャッフルだけなのか
キー順にソートすると、すべてのレコードが同じパーティションに配置される場合がある
パーティション・サイズの制限 (2 GB 程度) の問題が発生することがある
または、パフォーマンスが悪化する
そのため、上記のとおりデータを処理し、キーに無意味な値を追加することが可能
(94110, A, B)
(94110, A, C)
(10003, D, E)
(94110, E, F)
(94110, A, R)
(10003, A, R)
(94110, D, R)
(94110, E, R)
(94110, E, R)
(67843, T, R)
(94110, T, R)
(94110, T, R)
PROTodd
Klassy
シャッフルの大量発生
(94110, A, B)
(94110, A, C)
(10003, D, E)
(94110, E, F)
(94110, A, R)
(10003, A, R)
(94110, D, R)
(94110, E, R)
(94110, E, R)
(67843, T, R)
(94110, T, R)
(94110, T, R)
(94110, A, B)
(94110, A, C)
(94110, E, F)
(94110, A, R)
(94110, D, R)
(94110, E, R)
(94110, E, R)
(94110, T, R)
(94110, T, R)
(67843, T, R)(10003, A, R)
(10003, D, E)
javier_artiles
シャッフルの大量発生を排除
(94110, A, B)
(94110, A, C)
(10003, D, E)
(94110, E, F)
(94110, A, R)
(10003, A, R)
(94110, D, R)
(94110, E, R)
(94110, E, R)
(67843, T, R)
(94110, T, R)
(94110, T, R)
(94110_A, A, B)
(94110_A, A, C)
(94110_A, A, R)
(94110_D, D, R)
(94110_T, T, R)
(10003_A, A, R)
(10003_D, D, E)
(67843_T, T, R)
(94110_E, E, R)
(94110_E, E, R)
(94110_E, E, F)
(94110_T, T, R)
シャッフルに関する留意点
シャッフル・ファイルは再利用できる
しかし、データが大量発生する場合がある*
Sculpture by Flaming Lotus Girls
Photo by Zaskoda
シリアライゼーションの救世主: DataFrame
ほとんどのデータを JVM 内に保存する
この例外となるのが、Python で作成した UDF
Python による呼び出しをクエリー・プランに変換する
Spark の DataFrame でネイティブの処理以外の処理が
必要な場合は、
分散システムにより使いやすさで問題が発生することに
注意してください
SPARK DATAFRAME とは何か
SQL テーブルを超える機能を提供
PANDAS や R DATAFRAME とは異なる
半構造化データ (スキーマ情報を持つ)
テーブル・データ
ラムダではなく式を処理する
例: RDD.FILTER(LAMBDA X: X.HAPPY == TRUE)) ではなく、
DF.FILTER(DF.COL(“HAPPY”) == TRUE) を実行
Spark SQL によってパフォーマンスが改善するケースとは
構造化データまたは半構造化データを処理する場合
それほど複雑でない*処理が利用できれば、それでも構わない場合
データのサブセットに対してのみ処理を行う必要がある場合
処理対象の最も高速なデータでさえ読み取りが行われない
この手法については標準の手法であると説明しましたが、一部卓越した手法**が
利用できるようになりました。
内部機能を活用することで実現
JVM (Python および R) を使用しないユーザーの場合: 二重のシリアライゼーションの
問題を解決可能
** この卓越した手法を活用すると、スタックのオーバーフローが発生することがあります。すべての状態でこの手法が有効とは
限りません。この手法を試す前には、最寄りの Spark の担当部門までご相談ください。
Matti Mattila
このようなケースで Spark SQL を活用するメリット
スペースを効率的に使用するカラムナー処理とキャッシングによってデータの表示が可能
処理をデータ・ストアにプッシュダウン可能
オプティマイザーが処理の内部を検証することが可能
通常の Spark では、処理の内部を検証することで (min(_, _)) と (append(_, _)) の違いを検出することは
できない
Matti Mattila
処理スピードはどれだけ速くなるのか
Andrew Skudder
処理スピードはどれだけ速くなるのか
Andrew Skudder
DataFrame を使用したワード・カウントプログラム
df = sqlCtx.read.load(src)
# Returns an RDD
words = df.select("text").flatMap(lambda x: x.text.split(" "))
words_df = words.map(
lambda x:Row(word=x, cnt=1)).toDF()
word_count = words_df.groupBy("word").sum()
word_count.write.format("parquet").save("wc.parquet")
このプログラムでは、二重の
シリアライゼーションの
問題は引き続き存在
UDF を作成することもできます
def function(x):
卓越した機能を実現
sqlContext.registerFunction(“name”, function,
IntegerType())
しかし、以下に注意が必要
UDF では処理スピードが遅くなる (実行プログラムとの間で
データのコピーの送受信を行う必要がある)
Python と JVM のコード (FTW) を組み合わせる
DataFrame は、処理を JVM にプッシュするための 1 つの方法
Python の UDF とマップでは、このメリットを活用できない
しかし、Scala で UDF を作成し、Python から呼び出すことができる
py4j のエラー・メッセージがわかりにくいことがある
RDD は変換されたオブジェクトを保存するため、
RDD では処理が困難になる
Python から呼び出し可能な関数を提供する
// Python から呼び出し可能な関数名
object functions {
def kurtosis(e:Column):Column = new
Column(Kurtosis(EvilSqlTools.getExpr(e)))
def registerUdfs(sqlCtx:SQLContext):Unit = {
sqlCtx.udf.register("rowKurtosis", helpers.rowKurtosis _)
}
}
py4j* を使用して関数を呼び出す
SparkContext は JVM (_jvm) を参照する
JVM オブジェクトのラッパーとして機能する Python オブジェクト
多くは、「_j[objtype] 」を使用して JVM オブジェクトを取得する
rdd._jrdd
df._jdf
sc._jsc
上記はすべて確定したものではなく、変更される可能性があります
* py4j ブリッジはドライバー**上にのみ存在する
** 厳密には正しくないものの、かなり正しい
例
def register_sql_extensions(sql_ctx):
scala_sql_context = sql_ctx._ssql_ctx
spark_ctx = sql_ctx._sc
(spark_ctx._jvm.com.sparklingpandas.functions
.registerUdfs(scala_sql_context))
Python で DataFrame を使用する際の留意事項
JVM から Pandas に JSON としてシリアライズされるスキーマは
基本的にデータ収集のためのスキーマ
データ結合によりさまざまな製品が必要になる
ビッグデータにより、メモリー不足が発生
バージョン 2.0 より前: HiveContext を使用
Hive のインストールは不要
より強力な UDF や ウィンドウ関数
DATAFRAME が提供する強力な機能
スキーマ情報を管理する
JSON データをロードする際に、データを検証する
以前は、存在しないデータをロードしてもすぐに障害は
発生しなかったものの、今ではすぐに障害が発生する
PHOTO BY DAN G
将来構想*: 卓越した UDF を提供
Scala の世界では、シンプルな Scala を SQL 式に変換する
プロジェクトが進行中
Python でも同じようなアプローチを取ることが可能かもしれない
Jython を使用してシンプルな UDF を作成するプロジェクトの初期
段階にある (バージョン 2.7 と互換性を持ち、ネイティブのライブラ
リーを持たない): SPARK-15369
初期のベンチマーク結果では、ワードカウント処理のスピードがネイティブの Scala
UDF に比べて 5% 遅くなり、通常の Python よりも 65% 近く速くなっています
ベンチマークのために、自社で開発した Python UDF をぜひ
シェアしてください: http://bit.ly/pySparkUDF
* 将来において現在よりもパフォーマンスを改善することを保証するものではありません。しかし、その他のメリットは実現できる予定
です。
Spark のテスト・リソース
ライブラリー
Scala: Spark のテスト・ベース (Scala のチェックと単体テスト)、Scala のチェック
(Scala のチェック)、Spark の例 (単体テスト)
Java: Spark のテスト・ベース (単体テスト)
Python: Spark のテスト・ベース (単体テスト 2)、 PySpark のテスト (PySpark のテスト)
サンノゼで開催された Strata でのプレゼンテーション (YouTube に掲載)
ブログ
Java を使用した Spark の単体テスト スピーカー: Jesse Anderson
Making Apache Spark Testing Easy with Spark Testing Base
Unit testing Apache Spark with py.test
raider of gin
Spark に関する追加のリソース
プログラミング・ガイド (Java、Python、Scala に関する資料もあります)
http://spark.apache.org/docs/latest/
Kay Ousterhout の Web サイト
http://www.eecs.berkeley.edu/~keo/
書籍
ビデオ
Spark に関する情報提供
いつもは西海岸から情報を提供しているものの、近日中に Google ハングアウトで
情報を提供予定
今後のイベントを確認するには、Twitter で私をフォローしてください:
https://twitter.com/holdenkarau
raider of gin
Learning Spark
Fast Data
Processing with
Spark
(内容は多少古い)
Fast Data
Processing with
Spark
(第 2 版)
Advanced
Analytics with
Spark
Learning Spark
Fast Data
Processing with
Spark
(内容は多少古い)
Fast Data
Processing with
Spark
(第 2 版)
Advanced
Analytics with
Spark
近日中に発売:
Spark in Action
近日中に発売:
High Performance Spark
次に出版予定の書籍
「初期リリース*」を通じて、最初の 4 つの章を提供します
O’Reilly のサイトから購入可能: http://bit.ly/highPerfSpark
現時点では英語版のみ提供
最新情報については以下を参照してください
http://www.highperformancespark.com
https://twitter.com/highperfspark
* 初期リリースには間違いもいくつか含まれるものの、この内容に基づいて書籍の内容をよりよいものすることが
できます。
Spark に関するビデオ
Apache Spark の Youtube チャンネル
YouTube 上の Spark のビデオ:
http://bit.ly/holdenSparkVideos
Spark Summit 2014 のトレーニング
Paco の Introduction to Apache Spark
ありがとうございました!
Spark のテストを現在実施中です。
以下からぜひアンケートにご協力ください。
http://bit.ly/holdenTestingSpark
最終的な結果は、
@holdenkarau からツイートします
。
PySpark ユーザーの場合: 高速な処理を
実現するシンプルな UDF があれば、ぜひ
シェアしてください。
http://bit.ly/pySparkUDF

Weitere ähnliche Inhalte

Was ist angesagt?

「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
 

Was ist angesagt? (20)

ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
 
Apache Spark の紹介(前半:Sparkのキホン)
Apache Spark の紹介(前半:Sparkのキホン)Apache Spark の紹介(前半:Sparkのキホン)
Apache Spark の紹介(前半:Sparkのキホン)
 
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
 
Apache Sparkの紹介
Apache Sparkの紹介Apache Sparkの紹介
Apache Sparkの紹介
 
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
[Cloud OnAir] BigQuery の一般公開データセットを 利用した実践的データ分析 2019年3月28日 放送
 
Consistent hash
Consistent hashConsistent hash
Consistent hash
 
ベアメタルで実現するSpark&Trino on K8sなデータ基盤
ベアメタルで実現するSpark&Trino on K8sなデータ基盤ベアメタルで実現するSpark&Trino on K8sなデータ基盤
ベアメタルで実現するSpark&Trino on K8sなデータ基盤
 
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
 
機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018機械学習で泣かないためのコード設計 2018
機械学習で泣かないためのコード設計 2018
 
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組みリクルートのビッグデータ活用基盤とデータ活用に向けた取組み
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
 
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
 
Elasticsearch勉強会#44 20210624
Elasticsearch勉強会#44 20210624Elasticsearch勉強会#44 20210624
Elasticsearch勉強会#44 20210624
 
ビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年versionビッグデータ処理データベースの全体像と使い分け
2018年version
ビッグデータ処理データベースの全体像と使い分け
2018年version
 
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版) データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Hadoop入門
Hadoop入門Hadoop入門
Hadoop入門
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)Apache Airflow入門  (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
 

Andere mochten auch

Andere mochten auch (20)

Streaming & Scaling Spark - London Spark Meetup 2016
Streaming & Scaling Spark - London Spark Meetup 2016Streaming & Scaling Spark - London Spark Meetup 2016
Streaming & Scaling Spark - London Spark Meetup 2016
 
Getting started contributing to Apache Spark
Getting started contributing to Apache SparkGetting started contributing to Apache Spark
Getting started contributing to Apache Spark
 
Introducing Apache Spark's Data Frames and Dataset APIs workshop series
Introducing Apache Spark's Data Frames and Dataset APIs workshop seriesIntroducing Apache Spark's Data Frames and Dataset APIs workshop series
Introducing Apache Spark's Data Frames and Dataset APIs workshop series
 
Beyond Shuffling and Streaming Preview - Salt Lake City Spark Meetup
Beyond Shuffling and Streaming Preview - Salt Lake City Spark MeetupBeyond Shuffling and Streaming Preview - Salt Lake City Spark Meetup
Beyond Shuffling and Streaming Preview - Salt Lake City Spark Meetup
 
Extending spark ML for custom models now with python!
Extending spark ML for custom models  now with python!Extending spark ML for custom models  now with python!
Extending spark ML for custom models now with python!
 
Scaling with apache spark (a lesson in unintended consequences) strange loo...
Scaling with apache spark (a lesson in unintended consequences)   strange loo...Scaling with apache spark (a lesson in unintended consequences)   strange loo...
Scaling with apache spark (a lesson in unintended consequences) strange loo...
 
Beyond shuffling - Strata London 2016
Beyond shuffling - Strata London 2016Beyond shuffling - Strata London 2016
Beyond shuffling - Strata London 2016
 
Introduction to Spark ML Pipelines Workshop
Introduction to Spark ML Pipelines WorkshopIntroduction to Spark ML Pipelines Workshop
Introduction to Spark ML Pipelines Workshop
 
Introduction to and Extending Spark ML
Introduction to and Extending Spark MLIntroduction to and Extending Spark ML
Introduction to and Extending Spark ML
 
Introduction to Spark Datasets - Functional and relational together at last
Introduction to Spark Datasets - Functional and relational together at lastIntroduction to Spark Datasets - Functional and relational together at last
Introduction to Spark Datasets - Functional and relational together at last
 
Getting started with Apache Spark in Python - PyLadies Toronto 2016
Getting started with Apache Spark in Python - PyLadies Toronto 2016Getting started with Apache Spark in Python - PyLadies Toronto 2016
Getting started with Apache Spark in Python - PyLadies Toronto 2016
 
Spark ML for custom models - FOSDEM HPC 2017
Spark ML for custom models - FOSDEM HPC 2017Spark ML for custom models - FOSDEM HPC 2017
Spark ML for custom models - FOSDEM HPC 2017
 
Improving PySpark Performance - Spark Beyond the JVM @ PyData DC 2016
Improving PySpark Performance - Spark Beyond the JVM @ PyData DC 2016Improving PySpark Performance - Spark Beyond the JVM @ PyData DC 2016
Improving PySpark Performance - Spark Beyond the JVM @ PyData DC 2016
 
Getting the best performance with PySpark - Spark Summit West 2016
Getting the best performance with PySpark - Spark Summit West 2016Getting the best performance with PySpark - Spark Summit West 2016
Getting the best performance with PySpark - Spark Summit West 2016
 
A really really fast introduction to PySpark - lightning fast cluster computi...
A really really fast introduction to PySpark - lightning fast cluster computi...A really really fast introduction to PySpark - lightning fast cluster computi...
A really really fast introduction to PySpark - lightning fast cluster computi...
 
Apache Spark Super Happy Funtimes - CHUG 2016
Apache Spark Super Happy Funtimes - CHUG 2016Apache Spark Super Happy Funtimes - CHUG 2016
Apache Spark Super Happy Funtimes - CHUG 2016
 
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
Apache Spark Structured Streaming for Machine Learning - StrataConf 2016
 
Debugging PySpark - Spark Summit East 2017
Debugging PySpark - Spark Summit East 2017Debugging PySpark - Spark Summit East 2017
Debugging PySpark - Spark Summit East 2017
 
Beyond shuffling - Scala Days Berlin 2016
Beyond shuffling - Scala Days Berlin 2016Beyond shuffling - Scala Days Berlin 2016
Beyond shuffling - Scala Days Berlin 2016
 
Debugging Apache Spark - Scala & Python super happy fun times 2017
Debugging Apache Spark -   Scala & Python super happy fun times 2017Debugging Apache Spark -   Scala & Python super happy fun times 2017
Debugging Apache Spark - Scala & Python super happy fun times 2017
 

Ähnlich wie PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best Performance with PySpark - JPN Datapalooza Tokyo

Scalamacrosについて
ScalamacrosについてScalamacrosについて
Scalamacrosについて
dekosuke
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
Shintaro Fukushima
 
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
JPCERT Coordination Center
 
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jlWhy dont you_create_new_spark_jl
Why dont you_create_new_spark_jl
Shintaro Fukushima
 

Ähnlich wie PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best Performance with PySpark - JPN Datapalooza Tokyo (20)

Scalamacrosについて
ScalamacrosについてScalamacrosについて
Scalamacrosについて
 
Spring “BigData”
Spring “BigData”Spring “BigData”
Spring “BigData”
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
 
20151205 Japan.R SparkRとParquet
20151205 Japan.R SparkRとParquet20151205 Japan.R SparkRとParquet
20151205 Japan.R SparkRとParquet
 
Gorinphp0729
Gorinphp0729Gorinphp0729
Gorinphp0729
 
Gorinphp0729
Gorinphp0729Gorinphp0729
Gorinphp0729
 
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
 
SPARQLとMashup環境 (年岡先生)
SPARQLとMashup環境 (年岡先生)SPARQLとMashup環境 (年岡先生)
SPARQLとMashup環境 (年岡先生)
 
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
 
Survey of Apache Spark
Survey of Apache SparkSurvey of Apache Spark
Survey of Apache Spark
 
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jlWhy dont you_create_new_spark_jl
Why dont you_create_new_spark_jl
 
Scala on Hadoop
Scala on HadoopScala on Hadoop
Scala on Hadoop
 
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
 
hscj2019_ishizaki_public
hscj2019_ishizaki_publichscj2019_ishizaki_public
hscj2019_ishizaki_public
 
160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大
 
Bluemixを使ったTwitter分析
Bluemixを使ったTwitter分析Bluemixを使ったTwitter分析
Bluemixを使ったTwitter分析
 
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
 

PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best Performance with PySpark - JPN Datapalooza Tokyo