Kann die col-Funktion in pyspark nicht finden

8

In pyspark 1.6.2 kann ich col function mit

importieren %Vor%

Aber wenn ich versuche, es im Github-Quellcode nachzuschlagen Ich finde keine col Funktion in functions.py Datei, wie kann Python eine Funktion importieren, die nicht existiert?

    
Bamqf 20.10.2016, 19:38
quelle

2 Antworten

13

Es existiert. Es ist nur nicht explizit definiert. Aus pyspark.sql.functions exportierte Funktionen sind dünne Wrapper um JVM-Code und werden mit wenigen Ausnahmen, die eine spezielle Behandlung erfordern, automatisch mit Hilfsmethoden generiert.

Wenn Sie die Quelle sorgfältig prüfen, finden Sie col aufgelistet unter anderem _functions . Dieses Wörterbuch ist weiter iteriert und _create_function wird verwendet, um Wrapper zu generieren. Jede generierte Funktion wird direkt einem entsprechenden Namen in globals zugeordnet.

Schließlich __all__ , das eine Liste der aus dem Modul exportierten Elemente definiert, exportiert nur alle globals , ausgenommen die in der Blacklist enthaltenen.

Wenn dieser Mechanismus noch nicht klar ist, können Sie ein Spielzeugbeispiel erstellen:

  • Erstellen Sie das Python-Modul namens foo.py mit folgendem Inhalt:

    %Vor%
  • Platzieren Sie es irgendwo im Python-Pfad (zum Beispiel im Arbeitsverzeichnis).

  • Import foo :

    %Vor%
user6910411 20.10.2016, 19:51
quelle
0

Ich stieß auf ein ähnliches Problem, als ich versuchte, eine Pyspark-Entwicklungsumgebung mit Eclipse und pyDev einzurichten. pyspark verwendet einen dynamischen Namespace. Um es zur Arbeit zu bringen, musste ich pyspark hinzufügen, um "Builtins" zu erzwingen

Ссылка

    
AEDWIP 06.04.2018 16:25
quelle