2017-09-01 75 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