从Spark 3.2开始,Parquet就有了这个有趣的功能:Parquet列加密
该文档非常清楚地说明了如何为 Dataframe 模式中的特定列指定使用哪个键,即:
选项(“ parquet .加密.列.密钥”,“密钥A:正方形”)
如果我们要使用KMS系统中的keyA
标记所标识的密钥来加密名为square
的列。
问题是:如果我的列是一个Struct类型的数组,如何指定列名?
比如说
myDF.printSchema
root
|-- int_column: integer (nullable = false)
|-- square_int_column: double (nullable = false)
|-- more: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- name: string (nullable = true)
| | |-- description: string (nullable = true)
我如何指定more
列的键?或者more.name
列的键?支持吗?我在parquet或spark文档中找不到任何关于这个的内容。
1条答案
按热度按时间brgchamk1#
经过一番研究,
我决定用 parquet 工具来研究一个生成的 parquet 文件,以便了解结构数组在文件中是如何组织的。
因此,在创建了一个具有所需模式的parquet文件后,我用以下命令打开它:
检查列的元数据时,我发现:
因此,要加密该列,我们需要将该列指定为: