我是新的Spark,我正在使用 spark-2.1.0-bin-hadoop2.7
.
我已经检查了它的wordscont样本,它工作正常,但javaldaexample没有。
我查了他们的源代码。wordscount需要一个url作为其数据的参数,我已经在hadoop上通过hdfs创建了数据,所以我发送如下路径 hdfs://master:9000/input/data/test.txt
.
但是javaldaexample使用静态路径 Dataset<Row> dataset = spark.read().format("libsvm").load("data/mllib/sample_lda_libsvm_data.txt");
我不知道我应该把文件搬到哪里去。
我得到了这个错误(第51行,第59行)。你能帮我解决这个问题吗?
2条答案
按热度按时间igsr9ssn1#
这是一些示例数据集提供的示例代码,lda的示例数据集可在$spark\u home/data/mllib/本地获得。
这里的示例数据是静态的,并随包提供。
对于您的数据集,您有三种选择:
在类似的行上编写自己的lda应用程序,并从第45行更改代码:
Dataset<Row> dataset = spark.read().format("libsvm") .load("data/mllib/sample_lda_libsvm_data.txt");
到Dataset<Row> dataset = spark.read().format("libsvm") .load("YOUR/DATA_SETS/LOCATION");
使用相同的代码并从第45行更改路径:Dataset<Row> dataset = spark.read().format("libsvm") .load("data/mllib/sample_lda_libsvm_data.txt");
到Dataset<Row> dataset = spark.read().format("libsvm") .load("YOUR/DATA_SETS/LOCATION");
您可以将文件放在本地$spark\u home/data/mllib,然后将文件重命名为sample\lda\u libsvm\u data.txt。在前两种情况下,您必须构建/创建代码的新jar,然后使用它并使用新jar来执行代码。
如果你还有什么问题,请告诉我。
当做,
~z~凯达尔·迪克西特
abithluo2#
从你的日志中我可以看出spark正在寻找
/home/unique/spark-2.1.0-bin-hadoop2.7/work/driver-20170130015037-0017/data/mllib/sample_lda_libsvm_data.txt
.我认为最好的办法是修改该路径并用修改后的路径构建新jar。如果你喜欢的话,你可以把它指向hdfs。
如果您不想这样做,只是想快速测试和玩转,那么您应该能够在本地sparkshell中运行该代码。当您下载并解压缩spark时,spark目录应该包含另一个名为
data
. 这个例子的数据可以从那里找到。所以你可以用相对路径将它加载到spark shell中:scala> spark.read.format("libsvm").load("data/mllib/sample_lda_libsvm_data.txt");