从S3存储桶读取数据时的Json转换

问题描述

我有一个项目,其中我基本上是从S3存储桶读取Json文件的数据,然后转储到Elasticsearch中。我能够成功地做到这一点,我面临的挑战是保持所有字段的数据类型相同且一致。 例如 Json文件一个文件

{"name": "John","age": 24,"tax_details":""}

其他文档是

{"name": "nash","age": 26,"tax_details": {"Tax": "None"} }

因此,在上面的示例中,索引为tax_details的第一个文档被解析为字符串,但是当索引了下一个文档时,则tax_details字段是一个对象。所以我得到了一个类型不匹配的信息,这是因为该文件错误的并且没有被索引。

因此,我能想到的基本上是提取数据并转换数据,然后将它们索引到Elasticsearch。使用spark-scala代码时,有没有更简单的方法可以做到这一点? 我正在使用以下代码来索引数据

sparkSession.read
    .option("mergeSchema","true")
    .format("json")
    .load("s3_path")
    .savetoEs("demoindex")  

任何可以实现相同目标的领先者都是很好的。

解决方法

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

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

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