Кодировщик для наборов данных Spark строкового типаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Кодировщик для наборов данных Spark строкового типа

Сообщение Anonymous »

Я хотел бы написать кодировщик для типа Row в DataSet для операции с картой, которую я выполняю. По сути, я не понимаю, как писать кодеры.

Ниже приведен пример операции с картой:

Код: Выделить всё

In the example below, instead of returning Dataset, I would like to return Dataset

Код: Выделить всё

Dataset output = dataset1.flatMap(new FlatMapFunction() {
@Override
public Iterator call(Row row) throws Exception {

ArrayList obj = //some map operation
return obj.iterator();
}
},Encoders.STRING());
Я так понимаю, что вместо строки Encoder нужно написать так:

Код: Выделить всё

    Encoder encoder = new Encoder() {
@Override
public StructType schema() {
return join.schema();
//return null;
}

@Override
public ClassTag clsTag() {
return null;
}
};
Однако я не понимаю clsTag() в кодировщике и пытаюсь найти работающий пример, который может продемонстрировать что-то подобное (т. е. кодировщик для строки type)

Изменить. Это не копия упомянутого вопроса: ошибка кодировщика при попытке сопоставить строку фрейма данных с обновленной строкой, поскольку в ответе говорится об использовании Spark 1.x. в Spark 2.x (я этого не делаю) также ищу кодировщик для класса Row, а не устраняю ошибку. Наконец, я искал решение на Java, а не на Scala.

Подробнее здесь: https://stackoverflow.com/questions/432 ... k-datasets
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»