Существует. Он просто не определен явно. Функции, экспортированные из pyspark.sql.functions
, представляют собой тонкие обертки вокруг кода JVM и, за некоторыми исключениями, которые требуют специальной обработки, генерируются автоматически с использованием вспомогательных методов.
Если вы внимательно изучите источник you'll find col
listed among other _functions
. Этот словарь further iterated и _create_function
используется для создания оберток. Каждая сгенерированная функция напрямую назначается соответствующему имени в globals
.
Наконец __all__
, который определяет список элементов, экспортированных из модуля, только экспортирует все globals
, исключая те, которые содержатся в черном списке.
Если этот механизм до сих пор не ясно, что вы можете создать пример игрушка:
Создать модуль Python под названием foo.py
со следующим содержанием:
# 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")]
Место это где-то на пути Python (например, в рабочем каталоге).
Импорт foo
:
from foo import foo
foo(1)
@Bhaskar Поскольку 'ср (у) .first() [0]' (в частности, '.first() [0]') не имеет никакого смысла. Это не имеет ничего общего с описанной здесь проблемой. – user6910411
, можете ли вы предоставить нам конкретный пример? мой идеал показывает «неразрешенную ошибку» – AEDWIP
@ AEDWIP. Тогда это просто плохая среда. – user6910411