I think relative imports can not help in this case. When you run scripts in pyspark/sql, it doesn't know anything about pyspark.sql, it just see types.py as a separate module.
On Tue, May 26, 2015 at 12:44 PM, Punyashloka Biswal <punya.bis...@gmail.com> wrote: > Davies: Can we use relative imports (import .types) in the unit tests in > order to disambiguate between the global and local module? > > Punya > > On Tue, May 26, 2015 at 3:09 PM Justin Uang <justin.u...@gmail.com> wrote: >> >> 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. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@spark.apache.org For additional commands, e-mail: dev-h...@spark.apache.org