これはナイーブかもしれませんが、私は PySpark と Spark を使い始めたばかりです。Pyspark の One Hot Technique を理解するのを手伝ってください。列の 1 つで OneHotEncoding を実行しようとしています。1 回のホット エンコーディングの後、データフレーム スキーマはベクトルを追加します。ただし、機械学習アルゴリズムを適用するには、既存のデータ フレームに個別の列を追加し、各列がカテゴリを表すようにする必要がありますが、ベクトル型の列ではありません。OneHotEncoding を検証する方法。
私のコード:
stringIndexer = StringIndexer(inputCol="business_type", outputCol="business_type_Index")
model = stringIndexer.fit(df)
indexed = model.transform(df)
encoder = OneHotEncoder(dropLast=False, inputCol="business_type_Index", outputCol="business_type_Vec")
encoded = encoder.transform(indexed)
encoded.select("business_type_Vec").show()
この表示:
+-----------------+
|business_type_Vec|
+-----------------+
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
| (2,[0],[1.0])|
+-----------------+
only showing top 20 rows
新しく追加された列はベクトル型です。それを各カテゴリの個々の列に変換するにはどうすればよいですか