Thanks for clarifying! I don't understand python package and modules names that well, but I thought that the package namespacing would've helped, since you are in pyspark.sql.types. I guess not?
On Tue, May 26, 2015 at 3:03 PM Davies Liu <dav...@databricks.com> wrote: > There is a module called 'types' in python 3: > > davies@localhost:~/work/spark$ python3 > Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 00:54:21) > [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin > Type "help", "copyright", "credits" or "license" for more information. > >>> import types > >>> types > <module 'types' from > '/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/types.py'> > > Without renaming, our `types.py` will conflict with it when you run > unittests in pyspark/sql/ . > > On Tue, May 26, 2015 at 11:57 AM, Justin Uang <justin.u...@gmail.com> > wrote: > > In commit 04e44b37, the migration to Python 3, pyspark/sql/types.py was > > renamed to pyspark/sql/_types.py and then some magic in > > pyspark/sql/__init__.py dynamically renamed the module back to types. I > > imagine that this is some naming conflict with Python 3, but what was the > > error that showed up? > > > > The reason why I'm asking about this is because it's messing with pylint, > > since pylint cannot now statically find the module. I tried also > importing > > the package so that __init__ would be run in a init-hook, but that isn't > > what the discovery mechanism is using. I imagine it's probably just > crawling > > the directory structure. > > > > One way to work around this would be something akin to this > > ( > http://stackoverflow.com/questions/9602811/how-to-tell-pylint-to-ignore-certain-imports > ), > > where I would have to create a fake module, but I would probably be > missing > > a ton of pylint features on users of that module, and it's pretty hacky. >