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

bean类中不能有循环引用,但获得了类org的循环引用。阿帕奇。阿夫罗。架构

宰父德馨
2023-03-14

我想将包含Avro对象(例如MyAvroclass的对象)的javaRDD转换为java spark中的数据帧。我发现了以下错误

Cannot have circular references in bean class, but got the circular reference of class class org.apache.avro.Schema

代码:

JavaRDD<Row> test; 
Dataset<Row> outputDF = sparksession.createDataFrame(test.rdd(),<MyAvroClsass>.class);

共有1个答案

幸经艺
2023-03-14

这与:avro类型的createDataFrame中的无限递归有关

spark avro项目正在开展工作来解决这个问题,请参见:https://github.com/databricks/spark-avro/pull/217和https://github.com/databricks/spark-avro/pull/216

合并后,应该有一个函数将Avro对象的RDD转换为DataSet(行的DataSet等效于DataFrame),而不会出现生成类中getSchema()函数的循环引用问题。

 类似资料:
  • 问题内容: 在正在进行的项目中,人们编写了服务类来访问DAO。几乎每个业务对象都具有使用自己的DAO的自己的服务。在某些服务上,我们使用对其他服务的引用。目前,人们正在实例化构造函数内部所需的服务。 但是现在,我遇到了麻烦,因为服务A需要服务B而服务B需要服务A,因此对任一构造函数的调用都会导致堆栈溢出… 示例(伪代码): 您将如何解决?使用单例模式? 谢谢 问题答案: Spring框架通过使用依

  • 问题内容: 给定一个以复杂的,循环的方式相互引用的类实例的集合:垃圾收集器是否可能无法释放这些对象? 我隐约记得过去这是JVM中的问题,但我 认为 这在几年前已解决。但是,在jhat中进行的一些调查显示,循环引用是我现在面临的内存泄漏的原因。 注意:我一直给人以JVM能够解析循环引用并从内存中释放这种“垃圾岛”的印象。 但是,我提出这个问题只是为了看看是否有人发现了任何异常。 问题答案: 循环引用

  • 本文向大家介绍C++中的循环引用,包括了C++中的循环引用的使用技巧和注意事项,需要的朋友参考一下 虽然C++11引入了智能指针的,但是开发人员在与内存的斗争问题上并没有解放,如果我门实用不当仍然有内存泄漏问题,其中智能指针的循环引用缺陷是最大的问题。 我们可以看到在出main函数作用域之前两个指针指向的内存并没有释放(指针指向的对象没有调用析构函数),我门把当前的引用数打印出来为2这个没有问题,

  • 我有三个实体,EntityA、EntityB和EntityC,以这样的方式 是否有任何方法或任何库来生成正确的响应bean? 注意:使用lazy不是一个选项,因为在其他一些方法中,我希望获得相关的实体。

  • Apache Kafka:分布式消息传递系统 Apache Storm:实时消息处理 我们如何在实时数据管道中使用这两种技术来处理事件数据? 在实时数据管道方面,我觉得两者做的工作是一样的。如何在数据管道上同时使用这两种技术?