SlideShare a Scribd company logo
1 of 19
データレイクと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

What's hot

20171122 altair converge2017publish
20171122 altair converge2017publish20171122 altair converge2017publish
20171122 altair converge2017publishHiroshi Tanaka
 
2016年度 第3回バイオインフォマティクス実習
2016年度 第3回バイオインフォマティクス実習2016年度 第3回バイオインフォマティクス実習
2016年度 第3回バイオインフォマティクス実習Jun Nakabayashi
 
イケてる分析基盤をつくる
イケてる分析基盤をつくるイケてる分析基盤をつくる
イケてる分析基盤をつくるAtsushi Hayakawa
 
サーバレスで分析基盤〜ブートキャンプに参加してみた〜
サーバレスで分析基盤〜ブートキャンプに参加してみた〜サーバレスで分析基盤〜ブートキャンプに参加してみた〜
サーバレスで分析基盤〜ブートキャンプに参加してみた〜Y K
 
[2018bcu30]1年半もかけてしまったビッグデータ環境のリプレイス
[2018bcu30]1年半もかけてしまったビッグデータ環境のリプレイス[2018bcu30]1年半もかけてしまったビッグデータ環境のリプレイス
[2018bcu30]1年半もかけてしまったビッグデータ環境のリプレイスTakahiro Moteki
 
サーバレスBIデモ
サーバレスBIデモサーバレスBIデモ
サーバレスBIデモKeisuke Tokuda
 
[serverlessconf2017]FaaSで簡単に実現する数十万RPSスパイク負荷試験
[serverlessconf2017]FaaSで簡単に実現する数十万RPSスパイク負荷試験[serverlessconf2017]FaaSで簡単に実現する数十万RPSスパイク負荷試験
[serverlessconf2017]FaaSで簡単に実現する数十万RPSスパイク負荷試験Takahiro Moteki
 
The overview of Server-ide Bulk Loader
 The overview of Server-ide Bulk Loader The overview of Server-ide Bulk Loader
The overview of Server-ide Bulk LoaderTreasure Data, Inc.
 
Cassandra - Kylo/Nifi
Cassandra - Kylo/NifiCassandra - Kylo/Nifi
Cassandra - Kylo/NifiMao Ito
 
EmbulkのGCS/BigQuery周りのプラグインについて
EmbulkのGCS/BigQuery周りのプラグインについてEmbulkのGCS/BigQuery周りのプラグインについて
EmbulkのGCS/BigQuery周りのプラグインについてSatoshi Akama
 
データベースの使い分けを考える
データベースの使い分けを考えるデータベースの使い分けを考える
データベースの使い分けを考えるYosuke Katsuki
 
Kibanaでログを可視化してみた
Kibanaでログを可視化してみたKibanaでログを可視化してみた
Kibanaでログを可視化してみたDaigou Harada
 
大きすぎるフィールドに対応した件
大きすぎるフィールドに対応した件大きすぎるフィールドに対応した件
大きすぎるフィールドに対応した件Haruyuki Nakano
 
Dokkuの活用と内部構造
Dokkuの活用と内部構造Dokkuの活用と内部構造
Dokkuの活用と内部構造修平 富田
 
社内AWS勉強会第3回~S3編~
社内AWS勉強会第3回~S3編~社内AWS勉強会第3回~S3編~
社内AWS勉強会第3回~S3編~Takayuki Niinuma
 
第1回関西ソーシャルゲーム勉強会 kpi発表
第1回関西ソーシャルゲーム勉強会 kpi発表第1回関西ソーシャルゲーム勉強会 kpi発表
第1回関西ソーシャルゲーム勉強会 kpi発表OCHI Shuji
 
それFluentdで! #fluentd
それFluentdで!  #fluentdそれFluentdで!  #fluentd
それFluentdで! #fluentdAtsuko Shibuya
 
サイバーエージェント dojoインターン(サーバサイド)成果発表
サイバーエージェント dojoインターン(サーバサイド)成果発表サイバーエージェント dojoインターン(サーバサイド)成果発表
サイバーエージェント dojoインターン(サーバサイド)成果発表ShoyaIjichi
 
Microsoft Azure ではじめるクラウドレンダリング
Microsoft Azure ではじめるクラウドレンダリングMicrosoft Azure ではじめるクラウドレンダリング
Microsoft Azure ではじめるクラウドレンダリングHiroshi Tanaka
 

What's hot (20)

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

Similar to 220126 python-datalake-spark

サーバーレスアーキテクチャのすすめ(公開版)
サーバーレスアーキテクチャのすすめ(公開版)サーバーレスアーキテクチャのすすめ(公開版)
サーバーレスアーキテクチャのすすめ(公開版)Keisuke Kadoyama
 
Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)
Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)
Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)Amazon Web Services Japan
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Amazon Web Services Japan
 
Lambda in java_20160121
Lambda in java_20160121Lambda in java_20160121
Lambda in java_20160121Teruo Kawasaki
 
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについてSpark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについてRecruit Technologies
 
Windows Azure 概要
Windows Azure 概要Windows Azure 概要
Windows Azure 概要fumios
 
Windows Azure Storage:Best Practices and Internals
Windows Azure Storage:Best Practices and InternalsWindows Azure Storage:Best Practices and Internals
Windows Azure Storage:Best Practices and InternalsTakekazu Omi
 
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウYoichi Kawasaki
 
ネットアップとマイクロソフトで アプリケーションをちょっと良くしよう!!
ネットアップとマイクロソフトで アプリケーションをちょっと良くしよう!!ネットアップとマイクロソフトで アプリケーションをちょっと良くしよう!!
ネットアップとマイクロソフトで アプリケーションをちょっと良くしよう!!Miho Yamamoto
 
Windows on aws最新情報
Windows on aws最新情報Windows on aws最新情報
Windows on aws最新情報Genta Watanabe
 
JAWS FESTA Tohoku 2014 WordPressとAWSの素敵な関係
JAWS FESTA Tohoku 2014 WordPressとAWSの素敵な関係JAWS FESTA Tohoku 2014 WordPressとAWSの素敵な関係
JAWS FESTA Tohoku 2014 WordPressとAWSの素敵な関係Kazue Igarashi
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンKazuyuki Miyake
 
AzureStorageのオブジェクトレプリケートを試してみた
AzureStorageのオブジェクトレプリケートを試してみたAzureStorageのオブジェクトレプリケートを試してみた
AzureStorageのオブジェクトレプリケートを試してみた裕之 木下
 
Azure Functionsを業務利用する時の勘所
Azure Functionsを業務利用する時の勘所Azure Functionsを業務利用する時の勘所
Azure Functionsを業務利用する時の勘所裕之 木下
 
ふりかえり Windows Azure
ふりかえり Windows Azure ふりかえり Windows Azure
ふりかえり Windows Azure Takekazu Omi
 
CodeCommit/CodeDeploy/CodePipeline サービスアップデート(2016年10月)
CodeCommit/CodeDeploy/CodePipeline サービスアップデート(2016年10月)CodeCommit/CodeDeploy/CodePipeline サービスアップデート(2016年10月)
CodeCommit/CodeDeploy/CodePipeline サービスアップデート(2016年10月)Amazon Web Services Japan
 
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォームAWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォームHiroki Takeda
 
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話Hibino Hisashi
 
スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤Takumi Sakamoto
 

Similar to 220126 python-datalake-spark (20)

サーバーレスアーキテクチャのすすめ(公開版)
サーバーレスアーキテクチャのすすめ(公開版)サーバーレスアーキテクチャのすすめ(公開版)
サーバーレスアーキテクチャのすすめ(公開版)
 
Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)
Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)
Amazon Elastic MapReduce with Hive/Presto ハンズオン(講義)
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
Lambda in java_20160121
Lambda in java_20160121Lambda in java_20160121
Lambda in java_20160121
 
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについてSpark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについて
 
Kinesis3 notes
Kinesis3 notesKinesis3 notes
Kinesis3 notes
 
Windows Azure 概要
Windows Azure 概要Windows Azure 概要
Windows Azure 概要
 
Windows Azure Storage:Best Practices and Internals
Windows Azure Storage:Best Practices and InternalsWindows Azure Storage:Best Practices and Internals
Windows Azure Storage:Best Practices and Internals
 
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
 
ネットアップとマイクロソフトで アプリケーションをちょっと良くしよう!!
ネットアップとマイクロソフトで アプリケーションをちょっと良くしよう!!ネットアップとマイクロソフトで アプリケーションをちょっと良くしよう!!
ネットアップとマイクロソフトで アプリケーションをちょっと良くしよう!!
 
Windows on aws最新情報
Windows on aws最新情報Windows on aws最新情報
Windows on aws最新情報
 
JAWS FESTA Tohoku 2014 WordPressとAWSの素敵な関係
JAWS FESTA Tohoku 2014 WordPressとAWSの素敵な関係JAWS FESTA Tohoku 2014 WordPressとAWSの素敵な関係
JAWS FESTA Tohoku 2014 WordPressとAWSの素敵な関係
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
 
AzureStorageのオブジェクトレプリケートを試してみた
AzureStorageのオブジェクトレプリケートを試してみたAzureStorageのオブジェクトレプリケートを試してみた
AzureStorageのオブジェクトレプリケートを試してみた
 
Azure Functionsを業務利用する時の勘所
Azure Functionsを業務利用する時の勘所Azure Functionsを業務利用する時の勘所
Azure Functionsを業務利用する時の勘所
 
ふりかえり Windows Azure
ふりかえり Windows Azure ふりかえり Windows Azure
ふりかえり Windows Azure
 
CodeCommit/CodeDeploy/CodePipeline サービスアップデート(2016年10月)
CodeCommit/CodeDeploy/CodePipeline サービスアップデート(2016年10月)CodeCommit/CodeDeploy/CodePipeline サービスアップデート(2016年10月)
CodeCommit/CodeDeploy/CodePipeline サービスアップデート(2016年10月)
 
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォームAWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
AWSマネージドサービスをフル活用したヘルスケアIoTプラットフォーム
 
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
 
スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤スマートニュースの世界展開を支えるログ解析基盤
スマートニュースの世界展開を支えるログ解析基盤
 

More from Takuya Nishimoto

221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ているTakuya Nishimoto
 
220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集Takuya Nishimoto
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解するTakuya Nishimoto
 
211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10Takuya Nishimoto
 
210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれからTakuya Nishimoto
 
210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPythonTakuya Nishimoto
 
210526 Power Automate Desktop Python
210526 Power Automate Desktop Python210526 Power Automate Desktop Python
210526 Power Automate Desktop PythonTakuya Nishimoto
 
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto191208 python-kansai-nishimoto
191208 python-kansai-nishimotoTakuya Nishimoto
 
191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimotoTakuya Nishimoto
 
190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjpTakuya Nishimoto
 

More from Takuya Nishimoto (20)

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

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (8)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

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 ではじめるサーバーレス機械学習パイプライン