微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决以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 举报,一经查实,本站将立刻删除。