【问题标题】:How to set encoder for Spark dataset when importing csv or txt file导入 csv 或 txt 文件时如何为 Spark 数据集设置编码器
【发布时间】: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


    【解决方案1】:

    试试这个

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 2020-08-17
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多