SlideShare a Scribd company logo
データレイクとPySpark
2022-01-26
西本卓也 @24motz / @nishimotz
すごい広島 with Python
2
AWSではじめるデータレイク
3
AWSデータレイクのハンズオン
• QuickSight = BIツール
• https://aws.amazon.com/jp/campaigns/manga/vol8-1/
• CSVファイルをアップロードしてすぐ集計
• 他にも方法はある
• Enterprise Edition
• 30日間無料
• CloudWatch のグラフに似ている?
4
サーバレスのデータ分析
• S3 にバケットを作る
• バケットのフォルダに入力CSVファイルを置く
• Glue クローラーで読み込む
• Glue データカタログに登録される
• Athena で SQL 文を使ってクエリー
• CTAS = create table as select で新しいテーブルを作る
• 保存先はバケットの別フォルダ
• Parquet 形式(Snappy圧縮)が選べる
• 要するに S3 に保存できる read only データベース
5
ETL (Extract Transform Load)
• 参考書にのってない新しい方法
• Glue Studio
• AppFlow
• 参考書の方法
• Glue クローラと「分類子」で読み込み方法のカスタマイズ
• Glue ジョブ
• GUIで操作すると PySpark のスクリプトが生成される
• サーバレスで実行できる
• 実行結果を Glue クローラでデータカタログに登録
• Athena で確認
6
QuickSight
7
データカタログ
8
クローラー
9
クエリエディタ
10
ジョブ
11
スクリプト
12
Parquet をのぞいてみよう
• Athena が作った Parquet + Snappy ファイルを落とした
$ file 20220124_093108_00027_q33tc_***-7ba532c804ab
20220124_093108_00027_q33tc_ *** -7ba532c804ab: Apache Parquet
13
pandas に read_parquet あるが。。
• https://pandas.pydata.org/docs/reference/api/pandas.read_parq
uet.html
• さすがに何か入れないとだめらしい
ImportError: Unable to find a usable engine; tried
using: 'pyarrow', 'fastparquet'.
A suitable version of pyarrow or fastparquet is
required for parquet support.
14
15
PySpark を使う
• Parquet はこれで読めるらしい
from pyspark import SparkContext
from pyspark.sql import SparkSession
spark_context = SparkContext()
spark = SparkSession(spark_context)
df = spark.read.parquet("s3://my-backet/my-data/")
16
python 3.9 venv で環境を作る
• おっとでかい。。
$ pip install jupyterlab pandas
$ pip install pyspark
Collecting pyspark
Downloading pyspark-3.2.1.tar.gz (281.4 MB)
17
入門 PySpark
• 2017年に買った
• 最近やっと思い出した
18
PySpark と Pandas の DataFrame
from pyspark import SparkContext
from pyspark.sql import SparkSession
spark_context = SparkContext()
spark = SparkSession(spark_context)
filename = "20220124_093108_00027_*****"
df = spark.read.parquet(filename)
type(df) # => pyspark.sql.dataframe.DataFrame
df.show()
df.createOrReplaceTempView("chap7_japan_ctas")
spark.sql("select * from chap7_japan_ctas").collect()
df.count()
df2 = df.toPandas()
type(df2) # => pandas.core.frame.DataFrame
df2.tail(10)
19
まとめ
• 物足りなくなったら RedShift
• Google Cloud = BigQuery で同じようなことをどうするか
• Python Charity Talks 2020
• Apache Beam Python SDKとCloud Dataflowを使ったデータ処理パイ
プラインの構築
• PyCon JP 2021
• Vertex Pipelines ではじめるサーバーレス機械学習パイプライン

More Related Content

PPTX
sbc_rc_200_RealtimeCompute_handson_ver1.0
PDF
第一回Web技術勉強会 efkスタック編
PDF
Google bigquery導入記
PDF
Windows Azure HDInsight サービスの紹介
PDF
Azure Batch Renderingではじめるクラウドレンダリング
PDF
クラウド運用のためのストリームマイニング
PDF
[Azure Deep Dive] Spark と Azure HDInsight によるビッグ データ分析入門 (2017/03/27)
PDF
[社内共有会]AWS NAT-GW導入と構成変化 2年運用して 同時接続数 秒間100->10万へ成長
sbc_rc_200_RealtimeCompute_handson_ver1.0
第一回Web技術勉強会 efkスタック編
Google bigquery導入記
Windows Azure HDInsight サービスの紹介
Azure Batch Renderingではじめるクラウドレンダリング
クラウド運用のためのストリームマイニング
[Azure Deep Dive] Spark と Azure HDInsight によるビッグ データ分析入門 (2017/03/27)
[社内共有会]AWS NAT-GW導入と構成変化 2年運用して 同時接続数 秒間100->10万へ成長

What's hot (20)

PDF
20171122 altair converge2017publish
PPTX
2016年度 第3回バイオインフォマティクス実習
PDF
イケてる分析基盤をつくる
PPTX
サーバレスで分析基盤〜ブートキャンプに参加してみた〜
 
PDF
[2018bcu30]1年半もかけてしまったビッグデータ環境のリプレイス
PPTX
サーバレスBIデモ
PDF
[serverlessconf2017]FaaSで簡単に実現する数十万RPSスパイク負荷試験
PDF
The overview of Server-ide Bulk Loader
PPTX
Cassandra - Kylo/Nifi
PDF
EmbulkのGCS/BigQuery周りのプラグインについて
PDF
データベースの使い分けを考える
PDF
Kibanaでログを可視化してみた
PPTX
大きすぎるフィールドに対応した件
PDF
BigQuery + Fluentd
PPTX
Dokkuの活用と内部構造
PDF
社内AWS勉強会第3回~S3編~
PPTX
第1回関西ソーシャルゲーム勉強会 kpi発表
PPTX
それFluentdで! #fluentd
PPTX
サイバーエージェント dojoインターン(サーバサイド)成果発表
PDF
Microsoft Azure ではじめるクラウドレンダリング
20171122 altair converge2017publish
2016年度 第3回バイオインフォマティクス実習
イケてる分析基盤をつくる
サーバレスで分析基盤〜ブートキャンプに参加してみた〜
 
[2018bcu30]1年半もかけてしまったビッグデータ環境のリプレイス
サーバレスBIデモ
[serverlessconf2017]FaaSで簡単に実現する数十万RPSスパイク負荷試験
The overview of Server-ide Bulk Loader
Cassandra - Kylo/Nifi
EmbulkのGCS/BigQuery周りのプラグインについて
データベースの使い分けを考える
Kibanaでログを可視化してみた
大きすぎるフィールドに対応した件
BigQuery + Fluentd
Dokkuの活用と内部構造
社内AWS勉強会第3回~S3編~
第1回関西ソーシャルゲーム勉強会 kpi発表
それFluentdで! #fluentd
サイバーエージェント dojoインターン(サーバサイド)成果発表
Microsoft Azure ではじめるクラウドレンダリング
Ad

Similar to 220126 python-datalake-spark (18)

PDF
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
PDF
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
PDF
Effective Data Lakes - ユースケースとデザインパターン
PDF
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
PDF
Developers.IO 2019 Effective Datalake
PDF
データ活用を加速するAWS分析サービスのご紹介
PPTX
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
PPTX
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
PPTX
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
PDF
Apache Spark + Arrow
PPTX
AWSで作る分析基盤
PPTX
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
PPTX
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
PDF
Taming Distributed/Parallel Query Execution Engine of Apache Spark
PPTX
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
PDF
Serverless analytics on aws
PDF
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
PDF
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
20180619 AWS Black Belt Online Seminar データレイク入門: AWSで様々な規模のデータレイクを分析する効率的な方法
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
Effective Data Lakes - ユースケースとデザインパターン
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
Developers.IO 2019 Effective Datalake
データ活用を加速するAWS分析サービスのご紹介
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
Apache Spark + Arrow
AWSで作る分析基盤
大量のデータ処理や分析に使えるOSS Apache Spark入門 - Open Source Conference2020 Online/Fukuoka...
大量のデータ処理や分析に使えるOSS Apache Sparkのご紹介(Open Source Conference 2020 Online/Kyoto ...
Taming Distributed/Parallel Query Execution Engine of Apache Spark
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
Serverless analytics on aws
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
Ad

More from Takuya Nishimoto (20)

PPTX
221217 SwiftはPythonに似ている
PPTX
220427-pydata 統計・データ分析 特集
PPTX
211120 他人の書いたPythonスクリプトをステップ実行で理解する
PPTX
211020 すごい広島 with OSH 2021.10
PPTX
210917 オープンセミナー@広島のこれまでとこれから
PPTX
210911 これから始める電子工作とMicroPython
PPTX
210728 mpy
PPTX
210630 python
PPTX
210526 Power Automate Desktop Python
PPTX
210428 python
PPTX
200918 hannari-python
PPTX
200429 python
PPTX
200325 flask
PPTX
200208 osh-nishimoto-v2
PPTX
191208 python-kansai-nishimoto
PPTX
191101 nvda-sightworld-nishimoto
PPTX
191114 iotlt-nishimoto
PPTX
191030 anna-with-python
PPTX
190916 nishimoto-nvda-pyconjp
PPTX
190925 python-windows
221217 SwiftはPythonに似ている
220427-pydata 統計・データ分析 特集
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211020 すごい広島 with OSH 2021.10
210917 オープンセミナー@広島のこれまでとこれから
210911 これから始める電子工作とMicroPython
210728 mpy
210630 python
210526 Power Automate Desktop Python
210428 python
200918 hannari-python
200429 python
200325 flask
200208 osh-nishimoto-v2
191208 python-kansai-nishimoto
191101 nvda-sightworld-nishimoto
191114 iotlt-nishimoto
191030 anna-with-python
190916 nishimoto-nvda-pyconjp
190925 python-windows

220126 python-datalake-spark

  • 1. データレイクとPySpark 2022-01-26 西本卓也 @24motz / @nishimotz すごい広島 with Python
  • 3. 3 AWSデータレイクのハンズオン • QuickSight = BIツール • https://aws.amazon.com/jp/campaigns/manga/vol8-1/ • CSVファイルをアップロードしてすぐ集計 • 他にも方法はある • Enterprise Edition • 30日間無料 • CloudWatch のグラフに似ている?
  • 4. 4 サーバレスのデータ分析 • S3 にバケットを作る • バケットのフォルダに入力CSVファイルを置く • Glue クローラーで読み込む • Glue データカタログに登録される • Athena で SQL 文を使ってクエリー • CTAS = create table as select で新しいテーブルを作る • 保存先はバケットの別フォルダ • Parquet 形式(Snappy圧縮)が選べる • 要するに S3 に保存できる read only データベース
  • 5. 5 ETL (Extract Transform Load) • 参考書にのってない新しい方法 • Glue Studio • AppFlow • 参考書の方法 • Glue クローラと「分類子」で読み込み方法のカスタマイズ • Glue ジョブ • GUIで操作すると PySpark のスクリプトが生成される • サーバレスで実行できる • 実行結果を Glue クローラでデータカタログに登録 • Athena で確認
  • 12. 12 Parquet をのぞいてみよう • Athena が作った Parquet + Snappy ファイルを落とした $ file 20220124_093108_00027_q33tc_***-7ba532c804ab 20220124_093108_00027_q33tc_ *** -7ba532c804ab: Apache Parquet
  • 13. 13 pandas に read_parquet あるが。。 • https://pandas.pydata.org/docs/reference/api/pandas.read_parq uet.html • さすがに何か入れないとだめらしい ImportError: Unable to find a usable engine; tried using: 'pyarrow', 'fastparquet'. A suitable version of pyarrow or fastparquet is required for parquet support.
  • 14. 14
  • 15. 15 PySpark を使う • Parquet はこれで読めるらしい from pyspark import SparkContext from pyspark.sql import SparkSession spark_context = SparkContext() spark = SparkSession(spark_context) df = spark.read.parquet("s3://my-backet/my-data/")
  • 16. 16 python 3.9 venv で環境を作る • おっとでかい。。 $ pip install jupyterlab pandas $ pip install pyspark Collecting pyspark Downloading pyspark-3.2.1.tar.gz (281.4 MB)
  • 17. 17 入門 PySpark • 2017年に買った • 最近やっと思い出した
  • 18. 18 PySpark と Pandas の DataFrame from pyspark import SparkContext from pyspark.sql import SparkSession spark_context = SparkContext() spark = SparkSession(spark_context) filename = "20220124_093108_00027_*****" df = spark.read.parquet(filename) type(df) # => pyspark.sql.dataframe.DataFrame df.show() df.createOrReplaceTempView("chap7_japan_ctas") spark.sql("select * from chap7_japan_ctas").collect() df.count() df2 = df.toPandas() type(df2) # => pandas.core.frame.DataFrame df2.tail(10)
  • 19. 19 まとめ • 物足りなくなったら RedShift • Google Cloud = BigQuery で同じようなことをどうするか • Python Charity Talks 2020 • Apache Beam Python SDKとCloud Dataflowを使ったデータ処理パイ プラインの構築 • PyCon JP 2021 • Vertex Pipelines ではじめるサーバーレス機械学習パイプライン