iMind Developers Blog

iMind開発者ブログ

PySparkのDataFrameをPagination

概要 大きいDataFrameをページで区切りながらtoPandas()して保存してみる。 バージョン情報 Spark 2.4.3 サンプルデータの用意 1〜100万までのIDとランダムなスコアを持つDataFrameを用意する。 import pandas as pd import numpy as np np.random.seed(0) #…

pandasのto_dictでdictionaryの生成

概要 pandasのto_dictは引数にいろいろなモードを指定できるので、それらの動きを確認しておく。 序盤はorientごとの結果の表示。後半はユースケース。 バージョン情報 Python 3.7.3 pandas==0.25.1 サンプルデータ カラムA〜Cを持つDataFrameを用意する。サ…

mypyでPythonの引数や戻り値の型チェック

概要 mypyを使ったPythonでの各種型チェックの方法についてまとめる。 最近はPythonでも型指定を真面目にやっている例を見かけことが増えてきた感がある。 バージョン情報 Python3.7.3 mypy==0.720 参考URL PEP 484 -- Type Hints https://www.python.org/de…

PySparkで複数のArrayカラムをconcatする

概要 Spark2.4から複数のArrayカラムをconcatできるようになったらしいので試してみる。 https://issues.apache.org/jira/browse/SPARK-23736 バージョン情報 Spark 2.4.3 サンプルデータ サンプルデータとして、3つのArrayのカラム(名前はfoo, bar, baz)…

Pythonのchardetで文字コード判定

概要 Pythonで文字コード判定をしたくなることはよくあるので、やり方をメモしておく。 バージョン情報 Python 3.4.3 chardet==3.0.4 サンプルデータの用意 utfとsjisのファイルを生成しておく。 $ echo " イエスは身を起こして言われた。「あなたがたのうち…

Pythonでzipファイルの読み書き

概要 Pythonでzipファイルを生成したり、解凍したり、ストレージに展開せずにzipの中身を読んだり、既存のzipにファイルを追加したり等。 バージョン情報 Python 3.7.3 ディレクトリをまとめてアーカイブ 指定ディレクトリをzip圧縮する場合は shutil.make_a…

TensorFlow Liteでモデルのサイズを小さくする(v1.14.0)

概要 TensorFlow(Keras)で作ったモデルをTensorFlow Liteでコンバートする。 バージョン情報 tensorflow==1.14.0 この資料でやること TFLiteConverterには下記の4つのメソッドが用意されている。 from_frozen_graph from_keras_model_file from_saved_mode…

TensorBoardを使ってみる(v1.13.1)

概要 MNIST-fashionを例にTensorBoardで各種metrixを表示したり、画像を表示したり。 Keras利用。 バージョン情報 tensorboard==1.13.1 tensorflow==1.13.1 tf.keras.callbacks.TensorBoardの利用 tf.keras.callbacks.TensorBoard を設定しておくとmetricsの…

Pythonのresourceでスクリプトのメモリ使用量の制限

概要 resourceを使ってPythonで使うメモリにリミットをかけてみる。 指定メモリ以上を確保しようとするとMemory Errorで落ちるようになる。 バージョン情報 Python 3.7.3 psutil==5.6.3 resource.RLIMIT_DATA resource.RLIMIT_DATAはヒープサイズの上限を設…

PythonのfastavroでAvroの読み書き

概要 PythonでAvroのファイルを扱う。 avro-python3より速いと噂のfastavroを利用。 pandavroを使ったpandasとの連携も試す。 バージョン情報 Python3.7.3 fastavro==0.22.3 pandas==0.24.2 pandavro==1.5.0 インストール $ pip install pandas fastavro pan…