使用Python加密Databricks中的列,同时保留原始数据类型

问题描述 投票:0回答:1

我正在使用 Python 在 Databricks 中开发一个数据安全项目,我需要对 DataFrame 中的某些列进行加密,同时确保加密的列保留其原始数据类型。我已阅读下面的文章,但正在努力寻找一种在加密后保留数据类型完整性的解决方案。

https://medium.com/@datamadness/column-encryption-and-decryption-in-databricks-baf9ada3a7cf

任何关于如何实现这一目标的见解或代码示例(不使用 UDF)将不胜感激。谢谢!

python pyspark encryption databricks
1个回答
0
投票

如果我们可以生成一个

StringType
和一个
DecimalType
列,那么所有其他数据类型都可以从它们派生出来:

df = spark.sql("""
    SELECT 
    cast(conv(hex(aes_encrypt('Spark', 'abcdefghijklmnop', 'ECB')), 16, 10) as decimal(38, 0)) numeric_column,
    hex(aes_encrypt('Spark', 'abcdefghijklmnop', 'ECB')) string_column
""")
df.printSchema()
df.show(truncate= False)

输出为:

root
 |-- numeric_column: decimal(38,0) (nullable = true)
 |-- string_column: string (nullable = true)

+--------------------+--------------------------------+                         
|numeric_column      |string_column                   |
+--------------------+--------------------------------+
|18446744073709551615|E07BF450A0B1EA77D4780A0F668D73FB|
+--------------------+--------------------------------+
© www.soinside.com 2019 - 2024. All rights reserved.