美文网首页
es中mapping_parsing_exception处理一例

es中mapping_parsing_exception处理一例

作者: sidyph | 来源:发表于2018-10-08 16:57 被阅读0次

    2018.12.11补充:
    python中null数据有两种,一种是numpy格式的NaN,一种是python格式的None.
    操作中发现有些wind数据是nan,但是类型确实float,这种数据存入es的时候就报错。这个时候需要把nan转换为None,即类型转为Nonetype。然后再存就没问题了。

    def set_nan_to_none(self, the_dict):
        """将dict中的nan改为None"""
        for i in the_dict:
            if pd.isna(the_dict[i]):
                the_dict[i] = None
        return the_dict
    

    最近在测试程序的时候,发现无法把一个dict数据写入es,报下面这个错误,百思不得其解。


    image.png

    在百度多次都没有现成的解决方案之后,开始自己琢磨可能出现的问题。
    提示我解析‘short_company_name’这个字段失败,怀疑是编码问题。因为以前遇到过json数据编码的问题。但是看了半天es.index()函数里面都没有提示有设置编码。遂放弃。

    继续百度‘mapping_parsing_exception’,看到一个说type的问题。
    于是用es.indices.get(index=index_name)查看了下各个字段的type,发现‘short_company_name’这个字段的type是long,百度告诉这个是一个64位的int。

    继续百度,看到有人吐槽,es里面某个字段要是改的话就要整列全部改,想只改单个的是不可以的。于是把原始数据重新处理了下,type改为‘text’,再次执行就成功了。

    相关文章

      网友评论

          本文标题:es中mapping_parsing_exception处理一例

          本文链接:https://www.haomeiwen.com/subject/auejaftx.html