2017-09-01 101 views
0

我在與來自文檔星火Mllib代碼(https://spark.apache.org/docs/latest/ml-collaborative-filtering.html)這部分的問題,採用CSV或TXT文件時,設置星火數據集編碼:如何導入CSV或TXT文件

val ratings = 
spark.read.textFile("data/mllib/als/sample_movielens_ratings.txt") 
    .map(parseRating) 
    .toDF() 

我收到以下錯誤:

錯誤:(31,11)無法找到存儲在數據集中的類型的編碼器。通過導入spark.implicits._支持原始類型(Int,String等)和Product類型(case類)。將來的發行版中將添加對序列化其他類型的支持。

.map(parseRating) 
    ^

我也有我的目標開始執行以下操作:

val conf = new 
SparkConf().setMaster("local[*]").set("spark.executor.memory", "2g") 
val spark = 
SparkSession.builder.appName("Mlibreco").config(conf).getOrCreate() 
import spark.implicits._ 

看來,read.textFile方法需要的編碼器。我找到了一些關於如何設置編碼器的文章。但是,我不知道如何在導入csv或txt文件時實現它。 鑑於文檔中沒有提及編碼器,我也很可能錯過了某些明顯的東西。

回答

0

試試這個

val sparkSession: SparkSession = *** 
import sparkSession.implicits._ 
val dataset = sparkSession.createDataset(dataList) 

,看看這個鏈接找到預定義的編碼器之一。 Here