以JSON格式写出时,数据集内的Java对象在Spark流中以{}输出,如何获得实际值?

问题描述

我有一个结构如下的Java对象:

public class Example{
  private String key;
  private Object value;

  getters and setters here...
}

键存储对象的类型,以字符串或字符串形式存储。值存储对象的实际值。

我有一个包含Example的数据集/数据框,当我以df.writeStream.format("json").output.option("path","mypath").start().awaitTermination()的方式在json中输出时,JSON会以两种方式出现。

  1. 对象为null,因此Spark不输出它。 {key:"string"}{key:"long"}
  2. 对象不为null,因此Spark确实将其输出,而仅作为{}。 {key:"string",value:{}}{key:"long",value:{}}

我需要JSON输出包含实际值,但是由于我将其声明为对象,因此我猜spark无法很好地解释它。我需要它像这样输出{key:"string",value:"abc"}{key:"long",value:12345}

任何帮助或见识将不胜感激。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)