[英]JavaLDAExample doesn't work
我是Spark的新手,正在使用spark-2.1.0-bin-hadoop2.7
。
我已經檢查了它的WordsCount示例,並且工作正常,但是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行)。 你能幫我解決這個問題嗎?
從您的日志中可以看到Spark正在/home/unique/spark-2.1.0-bin-hadoop2.7/work/driver-20170130015037-0017/data/mllib/sample_lda_libsvm_data.txt
尋找數據。
我認為您最好的選擇是修改該路徑並使用修改后的路徑構建新的jar。 然后,您可以根據需要將其指向hdfs。
如果您不想這樣做,而只是想快速測試並玩轉,那么您應該能夠在本地Spark Shell中運行該代碼。 下載Spark並將其解壓縮時,Spark目錄應包含另一個名為data
目錄。 該示例數據可從此處找到。 因此,您可以使用相對路徑將其加載到Spark Shell:
scala> spark.read.format("libsvm").load("data/mllib/sample_lda_libsvm_data.txt");
這是一些示例數據集提供的示例代碼,LDA的示例數據集可在本地$ SPARK_HOME / data / mllib /獲得。
這里的示例數據是靜態的,並隨包一起提供。
對於您的數據庫,要提供數據集,可以使用以下三個選項:
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_HOME / data / mllib本地,然后將文件重命名為sample_lda_libsvm_data.txt。
在前兩種情況下,您將必須構建/創建代碼的新jar,然后使用它並使用新jar執行代碼。
如果您還有其他問題,請告訴我。
問候,
〜基達·迪克西特(Kedar Dixit)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.