apachespark—从s3 bucket读取数据时对json的转换

mec1mxoz  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(306)

我有一个项目,在这个项目中,我从json文件中读取数据,然后转储到elasticsearch中。我能够成功地做到这一点,我面临的挑战是保持所有字段的数据类型相同和一致。例如,json文件的一个文档

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

其他文件是

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

因此,在上面的示例中,当索引的tax\u details被解析为字符串时,第一个文档被解析为字符串,但当下一个文档被索引时,tax\u details字段就是一个对象。因此,我得到了一个类型不匹配,因为该文件是错误的,而不是索引。
所以我所能想到的基本上就是提取数据并在索引到elasticsearch之前进行转换。在使用spark scala代码时,有没有更简单的方法可以做到这一点??我使用以下代码来索引数据

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

任何能让我取得同样成就的领导都将是伟大的。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题