【发布时间】:2018-02-10 23:08:01
【问题描述】:
我在使用 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 等)和产品类型(案例类)。未来版本中将添加对序列化其他类型的支持。
.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文件的时候不知道怎么实现。 鉴于文档中没有提到任何关于编码器的内容,我也很可能遗漏了一些明显的东西。
【问题讨论】:
标签: csv apache-spark-mllib apache-spark-dataset implicits