2016-12-24 2 views
1

Ich benutze einen benutzerdefinierten Prozessor für CSV zu JSON-Konvertierung, die die CSV-Datei Daten in eine JSON-Array, die JSON-Objekte der Daten enthält konvertiert.Apache Nifi - Holen Sie sich die Dateiattribute und konstruieren die Json durch benutzerdefinierten Prozessor

Meine Anforderung ist, die Dateiattribute wie Dateiname, UUID, Pfad usw. zu erhalten und einen JSON daraus zu konstruieren.

Frage:

Wie kann ich die entsprechenden Attribute der Datei erhalten und konstruieren die ein JSON-Objekt es auf die gleiche json anhängt, bevor gebaut zu werden.

War nur ein paar Tage mit Apache Nifi arbeiten, so gehen Sie jetzt mit den benutzerdefinierten Anforderungen mit dem benutzerdefinierten Prozessor.

Antwort

4

Ich kann nicht sprechen, welche Attribute für Ihren benutzerdefinierten Prozessor geschrieben werden, aber es gibt eine Reihe von core attributes, die meisten/alle Flow-Dateien haben, wie Dateiname und UUID. Wenn Sie GetFile oder ListFile/FetchFile zum Einlesen Ihrer CSV-Datei verwenden, stehen Ihnen diese und eine Reihe anderer Attribute zur Verfügung (weitere Informationen finden Sie im Dokument).

Wenn Sie über eine Flussdatei mit den entsprechenden Attributen verfügen, können Sie mit dem Prozessor AttributesToJSON ein JSON-Objekt erstellen, das eine flache Liste der angegebenen Attribute enthält. Dieses Objekt kann den Inhalt der Flussdatei ersetzen oder ein eigenes sein Attribut (mit dem Namen 'JSONAttributes') abhängig von der Einstellung der Eigenschaft 'Destination' von AttributesToJSON.

+0

sicherlich benutze einen GetFile-Prozessor, um die CSV-Datei zu bekommen .. und Sie sind absolut Ritus für die Standard-Dateiattribute verfügbar (die sind auch in meinem benutzerdefinierten Prozessor, wie ich Flowfile verwende), coz nahm Ihren Vorschlag untersucht die API-Methoden und gefunden [org.apache.nifi.flowfile.attributes.CoreAttributes] (http://docs.hortonworks.com/HDPDocuments/HDF1/HDF-1.2/bk_DeveloperGuide/content/flowfile.html) enum, die den Kern definiert Attribute für jede FlowFile. Habe die Attribute, die gebraucht wurden. Danke – Ranjan

Verwandte Themen