Как установить кодировщик для набора данных Spark при импорте файла csv или txt

У меня возникла проблема с этой частью кода Spark Mllib из документации (https://spark.apache.org/docs/latest/ml-collaborative-filtering.html", используя файлы csv или txt:

val ratings = 
 spark.read.textFile("data/mllib/als/sample_movielens_ratings.txt")
  .map(parseRating)
  .toDF()

Я получаю следующую ошибку:

Ошибка: (31, 11) Не удалось найти кодировщик для типа, хранящегося в наборе данных. Примитивные типы (Int, String и т. д.) и типы продуктов (классы case) поддерживаются путем импорта spark.implicits._ Поддержка сериализации других типов будет добавлена ​​в будущих выпусках.

.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. Учитывая, что в документации ничего не упоминается о кодировщиках, вполне вероятно, что я упустил что-то очевидное.


person Christopher Mills    schedule 01.09.2017    source источник


Ответы (1)


Попробуй это

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

и посмотрите эту ссылку, чтобы найти один из предопределенных кодировщиков. Здесь

person user10089632    schedule 01.09.2017