2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Azure Databricks で 機密データ保護のために hashlib を利用してみました

Last updated at Posted at 2022-03-03

概要

機密データをそのまま公開するわけにはいかないので、そのカラムをキーにユニークな文字列(Hash利用)を付与することにより、データ処理できるようにする方法となります。 hashlibを使用した Pandas DataFrame列の機密データの匿名化を試してみました。

ローカル環境

  • macOS Monterey 12.1
  • python 3.8.12
  • Azure CLI 2.33.0

前提条件

  1. Azure環境がすでに用意されていること(テナント/サブスクリプション)
  2. ローカル環境に「azure cli」がインストールされていること
  3. Azure Databricks の Workspace 上で Notebook が稼働できていること。

事前準備

データファイルのアップロード

  1. 対象の Workspace の Azure Databricks ポータルで [Import & Explorer Data] を選択します
  2. 「Drop files to upload, or click to browse」に対象のファイルをドラッグ&ドロップします
  3. 「DBFS」タブを選択し、「FileStore - tables」フォルダ配下にドロップしたファイル(SE_Account.csv)を確認することができます

Notebook の実装

対象ファイルの読込(データの抽出)

cmd_1

# 対象データの確認
display(dbutils.fs.ls("/FileStore/tables/"))

# csv型式のデータファイルをDataFrameとして読取る
sdf = spark.read.csv('/FileStore/tables/SE_Account.csv', header='true', inferSchema='true', encoding='utf-8')
display(sdf)

image.png

SE名をHash処理する

cmd_2
import hashlib

# PySpark Dataframes から Pandas への変換
pdf = sdf.toPandas()

# カラム['U_Name']を新規作成し、Name項目をHashしたものを割り当てる
pdf['U_Name'] = pdf['Name'].apply(lambda x: hashlib.md5(x.encode()).hexdigest())
display(pdf)

# 不必要なカラムの削除後、Pandas から PySpark Dataframes への変換
df = spark.createDataFrame(pdf.drop(['J_Name', 'E_Name', 'Name', 'mailaddress'], axis = 1))
display(df)

image.png


まとめ

データ分析を実施するにあたり、データの機密性が大事ということに気が付き、今回の記事を記載。ただ、かなり社内よりの内容なので、忘備録のような扱いになってしまいました、、、、、

参考記事

以下の記事を参考にさせていただきました。感謝申し上げます
pythonでデータ操作を行う時の作業用コードメモ

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?