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

标签 java apache-spark

我想将包含 Avro 对象(例如 MyAvroClsass 的对象)的 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);

最佳答案

这与: Infinite recursion in createDataFrame for avro types

spark-avro 项目正在做一些工作来解决这个问题,请参阅:https://github.com/databricks/spark-avro/pull/217https://github.com/databricks/spark-avro/pull/216

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

关于java - 不能在bean类中有循环引用,但是得到了class类org.apache.avro.Schema的循环引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45440481/

相关文章:

java - 解密 AES/CBC/PKCS5Padding 错误 : Given final block not properly padded

scala - Spark 流 : Write Data to HDFS by reading from one HDFSdir to another

apache-spark - 如何获取 saveToCassandra 并使用它?

java - 生产者-消费者:如何知道生产完成

java - 在 Java 中获取 BIOS 时间

java - 显式指定用于读取 JSON 的架构并将缺失的字段标记为 null

java - 在 LinkedList 中搜索元素时的 NPE

apache-spark - 使用 Spark/Scala 读取序列文件时,无法序列化结果 : org. apache.hadoop.io.IntWritable

hadoop - Databricks是否为给定的群集和数据集提供建议的 Spark 参数?

hadoop - Spark 分区修剪在 1.6.0 上不起作用