我使用csv或txt文件来解决文档(https://spark.apache.org/docs/latest/ml-collaborative-filtering.html)中Spark Mllib代码的这一部分问题:
val ratings =
spark.read.textFile("data/mllib/als/sample_movielens_ratings.txt")
.map(parseRating)
.toDF()
我收到以下错误:
错误:(31,11)无法找到存储在数据集中的类型的编码器。导入spark.implicits.支持原始类型(Int,String等)和产品类型(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 :(得分:0)
试试这个
val sparkSession: SparkSession = ***
import sparkSession.implicits._
val dataset = sparkSession.createDataset(dataList)
并查看此链接以查找预定义编码器之一。 Here