私は何百万ものレコードを持つ製品情報ファイルを持っています。 CSVファイルは次のようになります。 sparkを使用して列の内容を置き換える方法
Product CategoryName SalesUnit Other Columns... p1 a12 41そして、次のようにマッピングファイル(CategoryCode < - > CategoryName)があります。マッピングファイルは、約200の記録があります。最終的には
p2 x5 72
p3 x5 69
p4 c21 80
p5 b16 59
p6 x5 75 .. .. ..
CategoryCode CategoryNameを、私はCategoryCodeで区分名の値を置き換えたい:によってずに交換を達成するために
1.0 a12
2.0 b13 3.0 b16 4.0 c12
5.0 c21
6.0 x5
.. ..
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 }その他のエレガントなアプローチ:
Product Category SalesUnit Other Colulmns.. p1 1.0 41私のアプローチは、スパークデータフレームのUDFを使用することです非常に多くの場合、コーディング... else節?ありがとう。
p2 6.0 72
p3 6.0 69
p4 5.0 80
p5 3.0 59
p6 6.0 75 .. .. ..
ありがとうございます、あなたのアプローチは私よりも優れています。 :) –