Python spark中带字符串的特征向量?

Python spark中带字符串的特征向量?,python,apache-spark,pyspark,apache-spark-ml,Python,Apache Spark,Pyspark,Apache Spark Ml,当然,我是个新手。 我的数据集包含大量带有分类变量的列。 我想利用特征向量来存储这些分类,并使用向量索引器以一种方便的方式执行从分类到顺序的映射 所以,我想实现像这样简单的东西(pyspark符号): 但对于字符串功能: # shall not work. For demonstration purposes only df = spark.createDataFrame( [ (0, Vectors.dense(['a', 'x'])),

当然,我是个新手。 我的数据集包含大量带有分类变量的列。 我想利用特征向量来存储这些分类,并使用向量索引器以一种方便的方式执行从分类到顺序的映射

所以,我想实现像这样简单的东西(pyspark符号):

但对于字符串功能:

# shall not work. For demonstration purposes only  
df = spark.createDataFrame(
        [
           (0, Vectors.dense(['a', 'x'])), 
           (1, Vectors.dense(['b', 'x'])), 
           (2, Vectors.dense(['c', 'y'])), 
           (3, Vectors.dense(['a', 'z'])), 
           (4, Vectors.dense(['z', 'x'])), 
           (5, Vectors.dense(['c', 'z']))],
        ["id", "features"]
      )

我猜Vector类不应该使用字符串,但我很乐意在这里介绍您关于使其工作的最佳方法的建议。

您可以尝试使用StringIndexer,它将字符串映射到可以用作功能的索引。可能的重复项可以尝试使用StringIndexer,它会将一个字符串映射到一个可以用作功能的索引
# shall not work. For demonstration purposes only  
df = spark.createDataFrame(
        [
           (0, Vectors.dense(['a', 'x'])), 
           (1, Vectors.dense(['b', 'x'])), 
           (2, Vectors.dense(['c', 'y'])), 
           (3, Vectors.dense(['a', 'z'])), 
           (4, Vectors.dense(['z', 'x'])), 
           (5, Vectors.dense(['c', 'z']))],
        ["id", "features"]
      )