2016-04-13 25 views

cevap

0

Muhtemelen nedeniyle uygulamanızda bir içe aktarma çakışması var gibi görünüyor pyspark.sql.functions gelen joker ithalat: Eğer nispeten sınırlı çalışmadıkça

Welcome to 
     ____    __ 
    /__/__ ___ _____/ /__ 
    _\ \/ _ \/ _ `/ __/ '_/ 
    /__/.__/\_,_/_/ /_/\_\ version 1.6.1 
     /_/ 

Using Python version 2.7.10 (default, Oct 19 2015 18:04:42) 
SparkContext available as sc, HiveContext available as sqlContext. 

In [1]: max(1, 2) 
Out[1]: 2 

In [2]: from pyspark.sql.functions import max 

In [3]: max(1, 2) 
--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
<ipython-input-3-bb133f5d83e9> in <module>() 
----> 1 max(1, 2) 

TypeError: _() takes exactly 1 argument (2 given) 

en iyisi ya perfix:

from pyspark.sql import functions as sqlf 

max(1, 2) 
## 2 

sqlf.max("foo") 
## Column<max(foo)> 

veya takma:

from pyspark.sql.functions import max as max_ 

max(1, 2) 
## 2 

max_("foo") 
## Column<max(foo)> 
+0

Eğer 'pyspark.sql.functions' dan sonra her zamanki gibi almazsanız. Çakışma olmamalı. Ama işe yaramıyorsa lütfen bir [mcve] – zero323

+0

veriniz Yanıtınız için teşekkürler! Açıkladığınız şey mantıklı. Ama kendi kıvılcım bağlamında max() nasıl çağırılır. pyspark.sql.functions konumuna alma max_ içeriyorsa, __name__ == "__main__": print max (1,2) Benim için çalışmıyor. Fakat diğer amaçlar için pyspark.sql.functions dosyasını almalıyım. – user3610141

+0

Sorunu 'import __builtin__' ve 'print __builtin __. Max (1,2)' ile çözdüm. Çok teşekkür ederim! – user3610141