私が知っているように、MLlibはintergerのみをサポートします。
次に、文字列をscalaでintergerに変換したいと思います。たとえば、txtfileに多くのreviewerID、productIDがあります。
reviewerID productID
03905X0912 ZXASQWZXAS
0325935ODD PDLFMBKGMS
...
StringIndexer
解決策です。推定器とトランスフォーマーを備えたMLパイプラインに適合します。基本的に、入力列を設定すると、各カテゴリの頻度が計算され、0から始まる番号が付けIndexToString
られます。パイプラインの最後に追加して、必要に応じて元の文字列に置き換えることができます。
詳細については、「機能の推定、変換、選択」のMLドキュメントをご覧ください。
あなたの場合、それは次のようになります:
import org.apache.spark.ml.feature.StringIndexer
val indexer = new StringIndexer().setInputCol("productID").setOutputCol("productIndex")
val indexed = indexer.fit(df).transform(df)
indexed.show()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加