pyspark是否可以初始化一些变量x并定义一些函数f(q),它在进入交互式shell之前使用x(并返回一个RDD)?我想让shell中的另一个用户访问此函数f(q),但我不想向他公开x变量。一个可能的解决方案是将这个函数附加到spark上下文变量吗?如果不可能,那怎么可能呢?
答案 0 :(得分:1)
这是完全可能的,但它不会达到预期的目的。例如,您可以使用修改后的shell script并通过使用原生扩展来进一步模糊数据,但它只会保护您免受意外曝光。
只要让用户访问功能齐全的Python环境,他们就会检查现有对象,分析闭包,访问源或调用调试器。因此,如果假设恶意,这根本不是可行的方法。这只是冰山一角。可以直接访问Spark shell的用户可以在集群上执行任意命令,实际上仅受授予Spark用户权限的限制。