Загрузка набора данных Spark в качестве читателя java в формате csv - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь реализовать свой собственный org.apache.spark.ml.Transformer, и мне нужно передать содержимое моего org.apache.spark.sql.Dataset в формате csv в мою Java библиотеку, которая принимает java.io.reader. Я борюсь здесь, потому что кажется, что это действительно два разных мира. В идеале я не хочу создавать из него строку, я бы хотел передать ее в потоковом режиме. На этом конкретном шаге c размер данных не должен превышать гигабайта, поэтому я думаю, что мог бы обойтись решением String, если оно абсолютно необходимо.

Пытаясь получить строку, я пробовал что-то вроде:

  class Bla (override val uid: String) extends Transformer {

  [...]  

  def transform(df: Dataset[_]): DataFrame = {
    df.rdd.map(x=>x.mkString(","))
  [...]

Но получаю несколько ошибок:

  • значение mkString не является членом _ Выражение $ 1
  • polymorphi c не может быть создано для ожидаемого типа; найдено: [U] org. apache .spark.rdd.RDD [U] требуется: org. apache .spark. sql .DataFrame (который расширяется до) org. apache .spark. sql .Dataset [org. apache .spark. sql .Row]

Итак, какие-нибудь предложения?


Изменить: я сделал небольшой набросок того, что я необходимо в https://github.com/jonalv/spark_java_problem

...