簡體   English   中英

JavaLDAExample不起作用

[英]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 /獲得。

這里的示例數據是靜態的,並隨包一起提供。

對於您的數據庫,要提供數據集,可以使用以下三個選項:

  1. 在相似的行上編寫您自己的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");
  2. 使用相同的代碼並從第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");

  3. 您可以將文件放在$ SPARK_HOME / data / mllib本地,然后將文件重命名為sample_lda_libsvm_data.txt。

在前兩種情況下,您將必須構建/創建代碼的新jar,然后使用它並使用新jar執行代碼。

如果您還有其他問題,請告訴我。

問候,

〜基達·迪克西特(Kedar Dixit)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM