INFO-EsToHive的使用
更新时间: 2025-07-10 17:54:35
阅读 5
INFO-EsToHive的使用
使用场景
场景一:ES的第一层字段包含fastjson无法解析的时间字段@timestamp场景二:es-hadoop报错字段中不能含有点符号
场景三:ES区分大小写,Spark不区分大小写报错字段重复
使用示例
场景一:1、选择读取成string
2、将来源所有涉及到的一级字段配置上去,若映射中未涉及的一级字段无需配置。如下示例(注意一点要将字段映射中涉及到的所有一级字段配置上去)。
source.sourceSchemaMap={"id":"string", "column2":"bigint"}
类型枚举如下,针对timestamp场景,如果无需读这个字段schema中不配置该字段即可,如果需要读就可以配置成string尝试读取成字符串。

场景二:

字段包含点的解决方案:
选取复杂字段读取为string的模式,如果想提取复杂字段的内容,使用自定义表达式用spark sql自行提取复杂字段的内容或者整段储存后下游处理。
其他特殊字符字段: 使用自定义表达式用反引号包裹解决。
例如:
get_json_object(BodyVariables, "$.BodyVariables['item.devicelD_1']")
场景三:
自定义参数:ndi.spark.spark-conf.spark.sql.caseSensitive=true
如果涉及脚本,增加代码块,填充代码
作者:刘家有
文档反馈
以上内容对您是否有帮助?