spark-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Davies Liu <dav...@databricks.com>
Subject Re: Spark 1.4.0 pyspark and pylint breaking
Date Tue, 26 May 2015 20:16:11 GMT
When you run the test in python/pyspark/sql/ by

bin/spark-submit python/pyspark/sql/dataframe.py

the the current directory is the first item in sys.path, sql/types.py
will have higher priority then python3.4/types.py, the tests will
fail.

On Tue, May 26, 2015 at 12:08 PM, Justin Uang <justin.uang@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 <davies@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.uang@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-unsubscribe@spark.apache.org
For additional commands, e-mail: dev-help@spark.apache.org


Mime
View raw message