Я хотел написать выходной файл в виде паркета.Для этого я преобразовал RDD в набор данных, поскольку из RDD мы не можем получить форму паркета напрямую.А для создания набора данных нам нужно использовать неявный кодер, иначе он начнет давать ошибку времени компиляции.У меня мало вопросов только по этому поводу.Ниже приведен мой код:
implicit val myObjEncoder = org.apache.spark.sql.Encoders.kryo[ItemData]
val ds: Dataset[ItemData] = sparkSession.createDataset(filteredRDD)
ds.write
.mode(SaveMode.Overwrite)
.parquet(configuration.outputPath)
}
Ниже приведены мои вопросы:
- Почему важно использовать кодировщик при создании набора данных?И что делает этот кодировщик?
- Из приведенного выше кода, когда я получаю выходной файл в виде паркета, я вижу его в закодированном виде.Как я могу декодировать это?Когда я декодирую его с помощью формы base64, я получаю следующее: com ......... processor.spark.ItemDat "0156028263
Итак, в основном он показывает мне object.toString () вид стоимости.