将 Java 对象读取为 scala Spark 中的 DataSet



我有一个HDFS路径,其中包含Java对象(例如Obj1(写入的数据,我想在我的Spark Scala代码中读取此路径并将其读取为Obj1的数据集。

一种方法是读取HDFS路径,在其上应用映射以创建与Obj1对应的新Scala对象。 有没有更简单的方法可以做到这一点,正如我们在 java 中所知,我们可以做这样的事情:

Dataset<Obj1> obj1DataSet = sparkSession.read().parquet("path").as(Encoders.bean(Obj1.class));

这可以按如下方式完成:

val obj1Encoder: Encoder[Obj1] = Encoders.bean(classOf[Obj1])
val objDataSet : Dataset[Obj1] = sparkSession.read.parquet("hdfs://dataPath/").as(obj1Encoder)

最新更新