にCOL機能を見つけることができません、私はがpyspark 1.6.2ではpyspark
from pyspark.sql.functions import col
でcol
機能をインポートすることができますが、私はGithub source codeでそれを検索しようとすると、私はfunctions.py
ファイルに何col
機能を見つけていない、どのようにすることができますPythonは存在しない関数をインポートしますか?
にCOL機能を見つけることができません、私はがpyspark 1.6.2ではpyspark
from pyspark.sql.functions import col
でcol
機能をインポートすることができますが、私はGithub source codeでそれを検索しようとすると、私はfunctions.py
ファイルに何col
機能を見つけていない、どのようにすることができますPythonは存在しない関数をインポートしますか?
あります。それは明示的に定義されていません。 pyspark.sql.functions
からエクスポートされた関数は、JVMコードの周りの薄いラッパーであり、特別な処理が必要な例外はいくつかありますが、ヘルパーメソッドを使用して自動的に生成されます。
慎重にソースyou'll find col
listed among other _functions
を確認する場合は、この辞書はfurther iteratedで、_create_function
はラッパーの生成に使用されます。生成された各関数は、globals
の対応する名前に直接割り当てられます。
最後に__all__
は、モジュールからエクスポートされたアイテムのリストを定義し、ブラックリストに含まれているものを除いてすべてglobals
をエクスポートします。
このメカニズムは、まだあなたがおもちゃの例を作成することができます明確でない場合は、次の
は、次の内容のfoo.py
と呼ばれるPythonモジュールを作成します:Pythonパス上のどこかに
# Creates a function assigned to the name foo
globals()["foo"] = lambda x: "foo {0}".format(x)
# Exports all entries from globals which start with foo
__all__ = [x for x in globals() if x.startswith("foo")]
置き、それを(たとえば、作業ディレクトリ内の)。
インポートfoo
は:
from foo import foo
foo(1)
@Bhaskar '平均(Y)1次回()[0]'(具体的には '1次回は()[0]')いずれかを行わないのでセンス。ここに記載されている問題とは関係ありません。 – user6910411