【问题标题】:Does MLLib only accept the libsvm data format?MLLib 是否只接受 libsvm 数据格式?
【发布时间】:2017-08-07 03:03:13
【问题描述】:

我在 Hive 有火车设置表。一共有600列,0~599列是年龄、性别……最后一列是0和1的标签。 我将表格读取为 df 并且 df 也有 600 列。

但我发现在 spark(python) 的文档中,模型像随机森林,只接受 libsvm 格式的数据。

data = spark.read.format("libsvm").load("data/mllib/sample_libsvm_data.txt")

所以我想知道 MLLib 是否只接受 libsvm 数据格式? 如果是这样,我如何将我的数据集转换为 libsvm 格式,因为我的数据集是存储为 hive 表的分布数据。

谢谢

【问题讨论】:

    标签: apache-spark pyspark spark-dataframe apache-spark-mllib


    【解决方案1】:

    如果您的数据存储在 hive 中,您可以通过 spark sql 读取它们并获得数据帧,然后您可以通过 sqark 训练数据帧。示例代码可以找到enter link description here

    【讨论】:

    • 链接中的代码使用的是label和features两列的数据格式,和我的数据格式不一样。
    • 数据帧也可以保存为 libsvm 格式。 df.write.format("libsvm").save("xxxxxx") .试试这个
    • val training = spark.createDataFrame(Seq( (1.0, Vectors.dense(0.0, 1.1, 0.1)), (0.0, Vectors.dense(2.0, 1.0, -1.0)), (0.0, Vectors.dense(2.0, 1.3, 1.0)), (1.0, Vectors.dense(0.0, 1.2, -0.5)) )).toDF("label", "features") training.write.format("libsvm").save("mylibsvmfile")
    猜你喜欢
    • 2015-07-14
    • 2012-11-14
    • 2014-07-31
    • 2017-12-11
    • 2012-02-13
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    相关资源
    最近更新 更多