bean类中不能有循环引用,但得到了类class org.apache.avro.Schema的循环引用

2024-04-10

我想将包含 Avro 对象(例如 MyAvroClsass 的对象)的 javaRDD 转换为 java Spark 中的数据帧。我遇到错误以下

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

Code:

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

这与:avro 类型的 createDataFrame 中的无限递归 https://stackoverflow.com/questions/36532237/infinite-recursion-in-createdataframe-for-avro-types/46479487#46479487

Spark-avro 项目正在开展工作来解决此问题,请参阅:https://github.com/databricks/spark-avro/pull/217 https://github.com/databricks/spark-avro/pull/217 and https://github.com/databricks/spark-avro/pull/216 https://github.com/databricks/spark-avro/pull/216

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bean类中不能有循环引用,但得到了类class org.apache.avro.Schema的循环引用 的相关文章

随机推荐