如何将一个大的CSV文件加载到WSO2中ML
我试图将一个10GB的CSV文件上传到WSO2 ML中,但我做不到,它给了我错误,我跟着这个链接改变了我的大小限制数据集在WSO2 ML(https://docs.wso2.com/display/ML100/FAQ#FAQ-Isthereafilesizelimittomydataset?Isthereafilesizelimittomydataset?)如何将一个大的CSV文件加载到WSO2中ML
我正在WSO2 ML与以下特征的PC: - 50GB RAM - 8个核
感谢
当谈到上传数据集到WSO2机器学习者,我们给出了三个选项。
- 从本地文件系统上传文件。正如您所提到的,最大上传限制保持为100MB,您可以通过将
-Dog.apache.cxf.io.CachedOutputStream.Threshold
选项设置为wso2server.dat
文件来增加限制。我们已经用1GB文件测试了这个功能。但是,对于大文件,我们不建议使用此选项。此功能的主要用例是允许用户快速尝试使用小数据集的一些机器学习算法。
由于您正在处理大型数据集,因此我们建议您采用以下两种方法将数据集上传到WSO2 ML服务器。
使用Hadoop文件系统(HDFS)上传数据。我们在文档[1]中详细描述了如何在WSO2 ML中使用HDFS文件。
如果您已经启动并运行WSO2 DAS实例,通过将WSO2 ML与WSO2 DAS集成,您可以在WSO2 ML的“创建数据集”向导中轻松地指出DAS表作为源类型。有关将WSO2 ML与WSO2 DAS集成的更多详细信息,请参阅[2]。
如果您需要关于此问题的更多帮助,请让我知道。
[1]。 https://docs.wso2.com/display/ML100/HDFS+Support
[2]。 https://docs.wso2.com/display/ML110/Integration+with+WSO2+Data+Analytics+Server
对于那些希望使用HDP(Hortonworks)作为HDFS解决方案的一部分,通过IPC使用8020的NameNode端口加载WSO2 ML的大型数据集,即hdfs:// hostname:8020/samples /数据/ 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();
}
}
感谢Upul,什么是使用DAS你已经尝试过的最大的数据集大小? –
如果您碰巧使用HDP(Hortonworks)作为HDFS解决方案的一部分,那么您可能需要在此情况下通过IPC使用8020的NameNode端口,即hdfs:// hostname:8020/samples/data/wdbcSample.csv。 由于我仍然害怕如果要创建的数据集大于1 GB或10 GB,因此我仍然害怕破坏WSO2 ML服务器,但不确定使用此HDFS方法在WSO2 ML上创建数据集的最大数据文件限制是多少。有关WSO2 ML容量限制的任何想法? –
您好......如果我正在使用内嵌的Spark服务器与WSO2 ML安装捆绑在一起,那么在开始从DAS创建数据集之前,如何首先将我的数据文件加载到本地WSO2 DAS数据表中?请帮忙。 –