导入csv或txt文件时如何为Spark数据集设置编码器

时间:2017-09-01 20:46:39

标签: csv apache-spark-mllib apache-spark-dataset implicits

我使用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文件时如何实现它。 鉴于文档中没有提到编码器,我很可能错过了一些明显的东西。

1 个答案:

答案 0 :(得分:0)

试试这个

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

并查看此链接以查找预定义编码器之一。 Here