【问题标题】:How do I properly format a Spark dataframe for input to LDA fitting?如何正确格式化 Spark 数据帧以输入 LDA 拟合?
【发布时间】:2018-11-23 11:32:10
【问题描述】:

我有一个格式如下的数据框:

Index | Feature1 | Feature2 | Feature3
21      5.0        1.0         6.0
5       4.0        2.0         3.0

但是对于 LDA().fit(df) 的输入,我需要一个格式如下的数据框:

id | features
21   [5.0, 1.0, 6.0]
5    [4.0, 2.0, 3.0]

我习惯于使用 Pandas,但对使用 PySpark 很陌生,找不到获得正确格式的好方法。有人可以帮忙吗?

【问题讨论】:

    标签: python apache-spark pyspark apache-spark-sql lda


    【解决方案1】:

    你可以使用pyspark.ml.feature.VectorAssembler:

    df = spark.createDataFrame(
        [[21, 5.0, 1.0, 6.0], [5, 4.0, 2.0, 3.0]], 
        ['Index', 'Feature1', 'Feature2', 'Feature3'])
    
    from pyspark.ml.feature import VectorAssembler
    
    assembler = VectorAssembler().setInputCols(
        ['Feature1', 'Feature2', 'Feature3']
    ).setOutputCol("features")
    
    assembler.transform(df).show()
    
    +-----+--------+--------+--------+-------------+
    |Index|Feature1|Feature2|Feature3|     features|
    +-----+--------+--------+--------+-------------+
    |   21|     5.0|     1.0|     6.0|[5.0,1.0,6.0]|
    |    5|     4.0|     2.0|     3.0|[4.0,2.0,3.0]|
    +-----+--------+--------+--------+-------------+
    

    【讨论】:

      猜你喜欢
      • 2016-07-01
      • 2016-10-18
      • 2021-07-26
      • 1970-01-01
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-15
      相关资源
      最近更新 更多