Ich versuche, BigDezimal (JJJJMMTT) in das Datumsformat (JJJJ/MM/TT) zu konvertieren, indem Sie Schweineschrift verwenden. Dafür habe ich unten Code geschrieben habenJJJJMMTT in Datumsformat konvertieren JJJJ/MM/TT
STOCK_A = LOAD '/user/cloudera/hl7' USING PigStorage('|');
data = FILTER STOCK_A BY ($1 matches '.*OBR.*');
MSH_DATA = FOREACH data GENERATE ToString($8,'yyyy-MM-dd')AS date;
Output i immer bin ist
20140926-01-01
20140929-01-01
20141002-01-01
Obwohl die erwartete Ausgabe ist
2014/09/26
2014/09/29
2014/10/02
Probe wird Datum mit
20140926
20140929
20141002
aber ich habe riesige Reihenelemente, wie kann ich $ 8 als Chararay zuweisen? – animal
'STOCK_A = LOAD '/ user/cloudera/hl7' VERWENDUNG von PigStorage ('|');' Diese Zeile bedeutet, dass alle geladenen Zeilen durch Trennzeichen '|' chararray Felder wie Sie nicht, t spezifiziere Schema. Verwenden Sie einfach die obige Lösung und versuchen Sie, mehr Dokumentation zu lesen. – Alexey
Vielen Dank, es hat funktioniert. Ich bin ein Anfänger in Schwein Latein sicherlich werde ich Ihrem Rat folgen. – animal