禁用 PySpark 中的某些功能 sql

Disable some functions in PySpark sql

有没有办法阻止用户使用 PySpark 中的某些功能SQL?

例如假设我想避免用户使用函数 logrand,我该如何禁用它?

您可以注册一个与您要禁用的函数同名的 udf 并在 udf 中抛出异常:

def log(s):
    raise Exception("log does not work anymore")
spark.udf.register("log", log)

spark.sql("select *, log(value) from table").show()

结果:

PythonException: 
  An exception was thrown from the Python worker. Please see the stack trace below.
Traceback (most recent call last):
[...]
Exception: log does not work anymore