aboutsummaryrefslogtreecommitdiff
path: root/python/pyspark/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/pyspark/__init__.py')
-rw-r--r--python/pyspark/__init__.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/python/pyspark/__init__.py b/python/pyspark/__init__.py
index 111ebaafee..ec1687415a 100644
--- a/python/pyspark/__init__.py
+++ b/python/pyspark/__init__.py
@@ -37,6 +37,7 @@ Public classes:
"""
+from functools import wraps
import types
from pyspark.conf import SparkConf
@@ -84,6 +85,20 @@ def copy_func(f, name=None, sinceversion=None, doc=None):
return fn
+def keyword_only(func):
+ """
+ A decorator that forces keyword arguments in the wrapped method
+ and saves actual input keyword arguments in `_input_kwargs`.
+ """
+ @wraps(func)
+ def wrapper(*args, **kwargs):
+ if len(args) > 1:
+ raise TypeError("Method %s forces keyword arguments." % func.__name__)
+ wrapper._input_kwargs = kwargs
+ return func(*args, **kwargs)
+ return wrapper
+
+
# for back compatibility
from pyspark.sql import SQLContext, HiveContext, Row