2016-03-28 4 views
1

Ich möchte andere Python/CSV-Dateien in meinen Python-udf importieren, um einige Operationen auszuführen.
Wie,
Vergleichen Sie die Tabellendaten (die als Stream zeilenweise einfließt) mit einer externen CSV-Zeile.
Wenn ich versuche, Daten von CSV-Datei zu lesen, gibt es mir einen FehlerPython UDF - externe Dateien importieren/lesen

IOError: File /home/abc/xyz/myfile.csv does not exist

Während der Code sehr gut funktioniert, wenn es als reguläres Python-Skript geschrieben (nicht UDF mag)

Antwort

1

Wenn Ich habe es richtig verstanden. Sie können versuchen, ADD FILE [Ihre vollständigen Dateipfad] oder Fügen Sie FILES [Ihr Verzeichnispfad].

Da vor dem Verweisen auf Cluster alle Daten zum Verteilungscache hinzugefügt werden müssen, damit der Code dort auf diesen Teil zugreifen kann. können Sie es sich ansehen. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli

+0

ADD FILE funktioniert gut für CSV-Dateien aber nicht .py, für .py Dateien, die es wirft ein Fehler „Import-Modul nicht gefunden“ – Denver

+0

ich die gleiche Frage haben, ich brauche eine externe zu verwenden. TXT-Datei in meiner Python-UDF-Datei; Ich habe meine Python-udf-Datei in meiner .sql-Datei als "ADD FILE address" hinzugefügt. Ich weiß jedoch nicht, wie ich auf diese .txt-Datei von meinem Python verweisen könnte. –

0

Seien Sie vorsichtig mit der Syntax! Es kann viele Probleme verursachen und leider kann der Abfragesprache-Interpreter nicht zeigen wo das Problem herkommt und es zeigt nur einen generischen Fehlerbericht.

Betrachten Sie die Art des gleichen Problems, das durch ein Syntaxproblem beim Adressieren der Datei verursacht wurde!

Accessing external file in Python UDF