Ich versuche, einen sauberen Beenden des Programms immer wenn mein Python als Hive UDF mit einer Ausnahme fehlschlägt.
Hier ist ein Beispiel:Python als Hive UDF - Clean Beenden bei Ausnahme
SELECT TRANSFORM (id, name) USING 'D:\Python27\python.exe streaming.py' AS (id string, name string, count integer) FROM hivesampletable;
#streaming.py
import sys
from datetime import datetime
try:
for line in sys.stdin.readlines():
fields = line.strip().split('\t')
fields.append(len(name))
print "\t".join(fields)
except:
#I want program to break/clean exit with out printing (writing back) to table
Ideen
geschätzt
Sind Sie auf der Suche nach der 'Pass' Aussage – Spade
Danke, können Sie bitte näher darauf eingehen? –
Die Anweisung 'pass' lässt sich mit NOP vergleichen oder nichts tun. Eine populäre Anwendung davon ist in Ausnahmeblöcken, wo Sie eine bestimmte Art von Ausnahme ignorieren möchten. Es ist nicht die beste Vorgehensweise, Ihre Ausnahme beim Abfangen nicht explizit anzugeben, aber 'pass 'ermöglicht es Ihnen, ohne Unterbrechung den Steuerungsfluss wiederherzustellen. – Spade