如何将大型CSV文件加载到WSO2 ML中

时间:2016-02-26 13:26:08

标签: wso2ml

我试图将10GB的CSV文件上传到WSO2 ML中,但我无法做到,它给了我错误,我按照此链接更改了WSO2 ML(https://docs.wso2.com/display/ML100/FAQ#FAQ-Isthereafilesizelimittomydataset?Isthereafilesizelimittomydataset中数据集的大小限制? )

我在具有以下特征的PC中运行wso2 ML: - 50GB RAM - 8个核心

谢谢

2 个答案:

答案 0 :(得分:0)

在将数据集上传到WSO2 Machine Learner时,我们提供了三个选项。

  1. 从本地文件系统上传文件。如您所述,最大上传限制保持为100MB,您可以通过为-Dog.apache.cxf.io.CachedOutputStream.Threshold文件设置wso2server.dat选项来增加限制。我们已经使用1GB文件测试了此功能。但是,对于大型文件,我们不建议使用此选项。此功能的主要用例是允许用户使用小数据集快速尝试一些机器学习算法。
  2. 由于您正在使用大型数据集,我们建议您按照两种方法将数据集上传到WSO2 ML服务器。

    1. 使用Hadoop文件系统(HDFS)上传数据。我们在文档[1]中详细描述了如何在WSO2 ML中使用HDFS文件。

    2. 如果您已启动并运行WSO2 DAS实例,通过将WSO2 ML与WSO2 DAS集成,您可以轻松地在WSO2 ML"创建数据集&#34中指出DAS表作为源类型34;向导。有关将WSO2 ML与WSO2 DAS集成的更多详细信息,请参阅[2]。

    3. 如果您需要有关此问题的更多帮助,请告知我们。

      [1]。 https://docs.wso2.com/display/ML100/HDFS+Support

      [2]。 https://docs.wso2.com/display/ML110/Integration+with+WSO2+Data+Analytics+Server

答案 1 :(得分:0)

对于那些希望使用HDP(Hortonworks)作为HDFS解决方案的一部分,使用名称节点8020通过IPC加载WSO2 ML的大型数据集的人,即hdfs:// hostname:8020 / samples / data / wdbcSample.csv,您可能还需要首先使用以下Java客户端将这样的数据文件摄取到HDFS上:

public static void main(String[] args) throws Exception {

    Configuration configuration = new Configuration();

    FileSystem hdfs = FileSystem.get(new URI("hdfs://hostname:8020"), configuration);
    Path dstPath = new Path("hdfs://hostname:8020/samples/data/wdbcSample.csv");

    if (hdfs.exists(dstPath)) {
        hdfs.delete(dstPath, true);
    } else {
        System.out.println("No such destination ...");
    }
    Path srcPath = new Path("wdbcSample.csv"); // a local file path on the client side

    try {
        hdfs.copyFromLocalFile(srcPath, dstPath);
        System.out.println("Done successfully ...");
    } catch (Exception ex) {
        ex.printStackTrace();
    } finally {
        hdfs.close();
    }
}