Ich habe eine Produktinformationsdatei mit mehr als Millionen Datensätze. Die CSV-Datei sieht folgendermaßen aus: So ersetzen Sie den Spalteninhalt mithilfe von Funken
Product CategoryName SalesUnit Other Columns... p1 a12 41Und ich habe eine Zuordnungsdatei (CategoryCode < -> CategoryName) wie folgt. Die Zuordnungsdatei hat rund 200 Datensätze:
p2 x5 72
p3 x5 69
p4 c21 80
p5 b16 59
p6 x5 75 .. .. ..
CategoryCode CategoryNameSchließlich möchte ich Wert von Kategorie mit CategoryCode ersetzen:
1.0 a12
2.0 b13 3.0 b16 4.0 c12
5.0 c21
6.0 x5
.. ..
Product Category SalesUnit Other Colulmns.. p1 1.0 41Mein Ansatz ist es, die UDF von Funkendatenrahmen zu verwenden:
p2 6.0 72
p3 6.0 69
p4 5.0 80
p5 3.0 59
p6 6.0 75 .. .. ..
udf { (CategoryName: String) => if (CategoryName.trim() == "a12") 1.0 else if (CategoryName.trim() == "b13") 2.0 else if (CategoryName.trim() == "b16") 3.0 else if (CategoryName.trim() == "c12") 4.0 else if (CategoryName.trim() == "c21") 5.0 else if (CategoryName.trim() == "x5") 6.0 else if (CategoryName.trim() == "z12") 7.0 else if (...) ... ... ... else 999.0 }Jede andere elegante Ansatz den Austausch zu erreichen, ohne durch Codierung so viele wenn ... else-Klausel? Vielen Dank.
Danke, Ihr Ansatz ist besser als meins. :) –