7

いくつかのカテゴリ文字列値 (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]

前もって感謝します

4

1 に答える 1