我正在大学里工作,试图使Spark SQL在加密数据上工作。我实现了一些允许加密/解密数据的功能。
我想实现一个类似于collect()的运算符,不同之处在于,当查询结果返回到Spark Client时,必须将其解密。
所以,我的想法是执行类似以下操作:
sqlContext.sql("SELECT * FROM table1").collectDecrypted()
首先,有没有更好的方法来进行此计算?如果没有,如何正确执行此操作?
我考虑过使用一个简单的函数来扩展DataSet API,该函数的功能类似于:
... {
ds.collect().flatMap( /* decrypt using my decryption function */ )
}