2015-04-29 29 views
1

我有一個非常大的數據集存儲在Hadoop(YARN集羣)上,我想在其上訓練支持向量機分類器。 從數據集的每個數據點中提取特徵,並以LibSVM格式保存。 Spark MLLib可以使用MLUtils.LoadLibSVMFile(JavaSparkContext上下文,字符串目錄)讀取這些文件。 每個文件都有一行,雙行以換行符結尾。該行代表特徵的值。如何使用映射和減少Java Spark MLLib合併文本文件?

我想將所有這些文件連成一個JavaRDD。 我可以使用.textFile(「../*」)和一些.join或.union語句嗎? 我不明白如何做到這一點...

你可以請這麼好心協助嗎? 我想更多的人想知道如何有效地做到這一點。

回答

0

SparkContext.textFile("/path/to/file/*")會讀取全部匹配的文件並代表您一個單一的大型RDD。

而且我認爲MLUtils.LoadLibSVMFile(sc, "/path/to/file/*")會爲您加載所有功能。你有沒有嘗試過?

+0

你是對的:) MLUtils.LoadLibSVMFile(sc,「/ path/to/file/*」)確實會加載我需要的所有功能。 你也許也知道我在哪裏可以找到Spark的RBF內核版本或一些人,我們可以對線性內核進行如此擴展? – blpasd

+0

我認爲人們已經[在其上工作](https://issues.apache.org/jira/browse/SPARK-4638)。我希望你有耐心:) – davidshen84

+0

謝謝你的鏈接!我有耐心,但也想貢獻我的知識:)但它是用Scala編寫的,所以我可能不會在Java中使用它? (我正在用Java編寫我的代碼) – blpasd