当前位置: 首页 > 知识库问答 >
问题:

如何在Java Spark中将avro文件作为对象列表读取

东门焕
2023-03-14

我有一个avro文件,我想在将其转换为代表性对象后读取和操作它

我曾尝试在Java Spark中使用RDD和DataSet加载它,但在这两种情况下,我都无法转换为所需的对象

作为数据集

Dataset<MyClass> input = sparkSession.read().format("com.databricks.spark.avro").load(inputPath)
                .as(Encoders.bean(MyClass.class)); 

此操作失败,错误为“bean类中不能有循环引用,但得到了类org.apache.avro.Schema的循环引用”

作为RDD

JavaRDD<String> input = sparkContext.textFile(inputPath);

如何将此RDD对象转换为RDD对象或数据集对象?

我对这个很陌生,所以如果我缺少一些基本的东西,但无法找到有效的解决方案,请原谅我。

共有1个答案

范鸿畅
2023-03-14

这可以通过使用来自的SparkAvroLoader来解决https://github.com/CeON/spark-utils

 类似资料:
  • 我有一个文件,它的结构与python列表/字典相同,即。 有没有一些简单的方法如何阅读这个文件并将它转换成一个字典列表?

  • 我有以下几门课: 我希望能够有一个具有JSON格式的文件,这样: 该文件是所有对象的列表。所以我试图创建两种方法: 将转换为JSON文件的方法。 方法,该方法将JSON文件读入。 在Java 8中实现这一点的最佳方式(最优雅的方式)是什么?我是否需要向类添加一些方法?还是有别的办法? 既然它是一个只包含字符串的对象列表,那么有什么优雅的东西吗?

  • 给定的示例模式包含一个字段,该字段是null和string的联合, 我想转换以下 json 对象, 转换成对应于上述模式的avro对象。我用Avro的JsonDecoder用下面描述的代码snppet试了一下, 它会异常失败,

  • 问题内容: 我想将一个对象写入CSV文件。对于XML,我们有XStream的像这样 所以,如果我想转换对象CSV我们是否有任何这样的图书馆吗? 编辑: 我想将我的Bean列表传递给应该将Bean的所有字段都写入CSV的方法。 问题答案: 首先,序列化是将对象“按原样”写入文件。AFAIK,您不能选择文件格式和全部。序列化的对象(在文件中)具有自己的“文件格式” 如果要将对象(或对象列表)的内容写入

  • 我必须将对象(播放器)保存到文件列表中,然后当我再次打开程序时,我必须与播放器一起读取该文件并将其添加到列表中。但是我读这个文件有问题吗?我做错了什么? ///////////////////////////// }

  • 问题内容: 我有一个大学作业,要求我从.csv文件中获取数据并读取,处理和以三种不同的方法进行打印。这些说明要求我将数据读取到数组列表中,并编写了一些代码来执行此操作,但是我不确定是否正确完成了该操作。有人可以帮助我了解我应该如何将文件读入数组列表吗? 我的代码: 问题答案: 您不需要数组来存储文件内容,可以使用String []数组列表,例如: 同样,在您的情况下,最好在本地声明并从中返回它,而