【问题标题】:Can I use a CSV in Spark MLLib?我可以在 Spark MLLib 中使用 CSV 吗?
【发布时间】:2021-01-11 03:43:51
【问题描述】:

我不熟悉使用 Spark 的 MLLib Python API。我有 CSV 格式的数据,如下所示:

Label   0   1   2   3   4   5   6   7   8   9   ... 758 759 760 761 762 763 764 765 766 767
0   -0.168307   -0.277797   -0.248202   -0.069546   0.176131    -0.152401   0.12664 -0.401460   0.125926    0.279061    ... -0.289871   0.207264    -0.140448   -0.426980   -0.328994   0.328007    0.486793    0.222587    0.650064    -0.513640
3   -0.313138   -0.045043   0.279587    -0.402598   -0.165238   -0.464669   0.09019 0.008703    0.074541    0.142638    ... -0.094025   0.036567    -0.059926   -0.492336   -0.006370   0.108954    0.350182    -0.144818   0.306949    -0.216190
2   -0.379293   -0.340999   0.319142    0.024552    0.142129    0.042989    -0.60938    0.052103    -0.293400   0.162741    ... 0.108854    -0.025618   0.149078    -0.917385   0.110629    0.146427

我可以通过使用df = spark.read.format("csv").option("header", "true").load("file.csv") 加载它来使用它吗?我正在尝试训练随机森林模型。我试过研究它,但它似乎不是一个大话题。我不想在没有完全确定它会工作的情况下尝试它,因为我使用的集群有很长的排队时间。

【问题讨论】:

    标签: dataframe csv apache-spark apache-spark-mllib libsvm


    【解决方案1】:

    是的!您还需要推断架构。

    df = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("file.csv")
    

    如果您有许多具有相同列名和数据类型的文件,请保存架构以供重复使用。

    schema = df.schema
    

    然后下次读取具有相同列的 csv 文件时,您可以

    df = spark.read.format("csv").option("header", "true").option("schema", schema).load("file.csv")
    

    【讨论】:

    • 其实只是想问一下,如果你愿意的话,我希望标题 '0' 到 '767' 下的所有值都是向量值。它们最初位于像 array([-0.168307, -0.277797,-0.248202, -0.069546,...,0.176131]) 这样的 Numpy 数组中。那种会被保留吗?
    • 是的。列顺序将保留在 CSV 中。
    • 您可以推断 csv 架构,这是真的,但为它们创建架构有助于避免由于列的行中的几个错误值导致意外的数据类型选择,您将在稍后清理。跨度>
    猜你喜欢
    • 2017-03-10
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    • 2023-03-21
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    相关资源
    最近更新 更多