いくつかのカテゴリ文字列値 (uuid|url|browser など) を持つ DataFrame があります。
double 行列を受け入れる ML アルゴリズムを実行するために double に変換します。
変換方法として、文字列値を double 値にマップする StringIndexer (spark 1.4) を使用したので、次のような関数を定義しました。
def str(arg: String, df:DataFrame) : DataFrame =
(
val indexer = new StringIndexer().setInputCol(arg).setOutputCol(arg+"_index")
val newDF = indexer.fit(df).transform(df)
return newDF
)
問題は、df の foreach 列を反復処理し、この関数を呼び出して、解析された double 列に元の文字列列を追加 (または変換) することです。結果は次のようになります。
初期自由度:
[String: uuid|String: url| String: browser]
最終DF:
[String: uuid|Double: uuid_index|String: url|Double: url_index|String: browser|Double: Browser_index]
前もって感謝します