aboutsummaryrefslogtreecommitdiff
path: root/python/pyspark/mllib/__init__.py
diff options
context:
space:
mode:
authorDavies Liu <davies@databricks.com>2014-11-13 10:24:54 -0800
committerXiangrui Meng <meng@databricks.com>2014-11-13 10:24:54 -0800
commitce0333f9a008348692bb9a200449d2d992e7825e (patch)
tree03a42efe832281f0cb668d460a53153cd4bbc99b /python/pyspark/mllib/__init__.py
parent484fecbf1402c25f310be0b0a5ec15c11cbd65c3 (diff)
downloadspark-ce0333f9a008348692bb9a200449d2d992e7825e.tar.gz
spark-ce0333f9a008348692bb9a200449d2d992e7825e.tar.bz2
spark-ce0333f9a008348692bb9a200449d2d992e7825e.zip
[SPARK-4348] [PySpark] [MLlib] rename random.py to rand.py
This PR rename random.py to rand.py to avoid the side affects of conflict with random module, but still keep the same interface as before. ``` >>> from pyspark.mllib.random import RandomRDDs ``` ``` $ pydoc pyspark.mllib.random Help on module random in pyspark.mllib: NAME random - Python package for random data generation. FILE /Users/davies/work/spark/python/pyspark/mllib/rand.py CLASSES __builtin__.object pyspark.mllib.random.RandomRDDs class RandomRDDs(__builtin__.object) | Generator methods for creating RDDs comprised of i.i.d samples from | some distribution. | | Static methods defined here: | | normalRDD(sc, size, numPartitions=None, seed=None) ``` cc mengxr reference link: http://xion.org.pl/2012/05/06/hacking-python-imports/ Author: Davies Liu <davies@databricks.com> Closes #3216 from davies/random and squashes the following commits: 7ac4e8b [Davies Liu] rename random.py to rand.py
Diffstat (limited to 'python/pyspark/mllib/__init__.py')
-rw-r--r--python/pyspark/mllib/__init__.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/python/pyspark/mllib/__init__.py b/python/pyspark/mllib/__init__.py
index 4149f54931..5030a655fc 100644
--- a/python/pyspark/mllib/__init__.py
+++ b/python/pyspark/mllib/__init__.py
@@ -24,3 +24,37 @@ Python bindings for MLlib.
import numpy
if numpy.version.version < '1.4':
raise Exception("MLlib requires NumPy 1.4+")
+
+__all__ = ['classification', 'clustering', 'feature', 'linalg', 'random',
+ 'recommendation', 'regression', 'stat', 'tree', 'util']
+
+import sys
+import rand as random
+random.__name__ = 'random'
+random.RandomRDDs.__module__ = __name__ + '.random'
+
+
+class RandomModuleHook(object):
+ """
+ Hook to import pyspark.mllib.random
+ """
+ fullname = __name__ + '.random'
+
+ def find_module(self, name, path=None):
+ # skip all other modules
+ if not name.startswith(self.fullname):
+ return
+ return self
+
+ def load_module(self, name):
+ if name == self.fullname:
+ return random
+
+ cname = name.rsplit('.', 1)[-1]
+ try:
+ return getattr(random, cname)
+ except AttributeError:
+ raise ImportError
+
+
+sys.meta_path.append(RandomModuleHook())