「より効率的に歴史データを保存する方法」
歴史データの効率的な保存方法
PySparkを使用して、DataFrameの行の0.01%までしか保存せず、情報を失わずに行を削除するハンズオンチュートリアル。
企業や組織が以前よりも多くのデータを収集している時代において、データセットは新しい情報や価値のある情報を含まない何百万もの不要な行を蓄積しがちです。この記事では、データ管理の重要な側面である、PySparkを使用してデータセットから行を削除する方法に焦点を当てます。
* PySparkは、非常に大きなデータセットを扱う場合にpandasの代わりに使用されます。PySparkは複数のコンピュータでデータを処理できるため、より高速かつスケーラブルです。Pandasは、単一のマシンのメモリに収まるより小さなデータセットに適していますが、ビッグデータの場合は遅くなるか、実用的ではありません。
以下の状況を想像してみましょう:不動産会社の保守部門でデータエンジニア/データサイエンティストとして働いています。過去10年間、会社は建物の状態を含む外部データベースからのすべての保守データを完全にロードし、会社のクラウドストレージに保存してきました。データは以下のようになる可能性があります:
このデータセットには、3つの列があります:
id
-> 建物のIDです。condition
-> 建物の状態を表す1(最悪)から10(最高)の整数です。import_date
-> この行が外部ソフトウェアからインポートされた日を表す日時列です。
このデータセットを作成するには、以下のスニペットを実行してください:
from pyspark.sql import SparkSession, Rowfrom pyspark.sql.functions as ffrom pyspark.sql.types import IntegerType, DateTypeimport random# set the seed to get same results when rerunningrandom.seed(42)# create a spark sessionspark = SparkSession.builder.getOrCreate()# create id listids = list(range(1, 11)) # 唯一のIDの数を満たすようにこのリストのサイズを調整してください# create two possible conditions for each idconditions = [[random.randint(1, 10) for _ in range(2)] for _ in ids]# create a list of tuples where each tuple is a rowrows = [(id, random.choice(conditions[id-1]), date) for id in ids…
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles