当前位置: 首页 > news >正文

向量数据如何以文件形式导入Kibana-csv or jsonl?

为提高效率,很多向量库支持批量文件导入,常用文件有csv、jsonl。

那么在Kibana+ES场景,将包含向量的数据导入Kibana,选择csv还是选择jsonl?

这里尝试了csv、jsonl多种方式,最后发现jsonl更适合,更容易处理和控制。

1 csv文件

kibana支持csv文件。这里先用python生成csv,其中包括向量数据,然后尝试kibana导入。

1.1 csv.writer生成csv

python基于csv包,导出csv格式数据,包括以下步骤

1)初始化csv.writer;2)写入表头,如csv_writer.writerow(name);3)写入内容,如csv_writer.writerow(z);4)文件关闭。

示例程序如下所示。

import csv with open("file.csv", "a", encoding="utf-8", newline="") as f:csv_writer = csv.writer(f)#列表头name=['top','name']csv_writer.writerow(name)# 写入csv文件内容z = [[0, "one"],[1, "two"],[2, "three"]]csv_writer.writerow(z)f.close()

测试后发现,向量项分割符与csv分割符“,”冲突,导出csv文件解析异常。

1.2 pandas导出csv

采用成熟可靠DataFrame工具导出csv,比如pandas。

具体为:pandas将向量表示为DataFrame中一列,然后调用to_csv导出csv。

以下是示例代码。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df2 = pd.DataFrame({'A': 1,'B':pd.Timestamp('20170801'),'C':pd.Series(1,index=list(range(4)),dtype='float64'),'D':np.array([3]*4,dtype='int64'),'E':pd.Categorical(["test","train","test","train"]),'F':'fooo'
})
print(df2)
df2.to_csv('cases.csv', index=False)

测试发现,pandas可以正常导出合法的csv文件,但导入kibana报如下异常,看上去像编码问题。

 Illegal character inside unquoted field at 13 {"message":" -0.01611782]\""}

2 jsonl文件

Kibana还支持jsonl文件导入,这里进一步尝试jsonl。

2.1 jsonl生成

jsonl是面向json的文件格式,要求每行一个完整json串,解析时每读一行json解析一次。

import json
with open("cases.jsonl", "w") as f:for data in data_list:d = {"id": data[0], "text": data[1], "vector": [float(v) for v in data[2]]}body = json.dumps(d, ensure_ascii=False)f.write(f"{body}\n")

2.2 jsonl 导入

在导入kibana时,kibana不能正确识别vector字段,可以通过调整字段定义解决。

具体为:按如下格式调整vector字段定义。

{
  "mappings": {
    "properties": {
      "idx": {
        "type": "text"
      },
      "vector": {
        "type": "dense_vector",
        "dims": 1024,
        "index": true,
        "similarity": "cosine",
        "index_options": {
          "type": "bbq_hnsw",
          "m": 16,
          "ef_construction": 100,
          "rescore_vector": {
            "oversample": 3
          }
        }
      },
      "text": {
        "type": "text"
      }
    }
  }
}

reference

---

使用 Python 读取并写入 CSV 文件

https://www.runoob.com/python3/python-csv-read-write.html

python 【模块】pandas数组处理详解

https://blog.csdn.net/xixihahalelehehe/article/details/106247323

Mac本地docker安装Kibana+ElasticSearch

https://blog.csdn.net/liliang199/article/details/151581138

云搜索服务 CSS-使用Elasticsearch实现向量检索:步骤四:导入向量数据

https://www.huaweicloud.com/guide/productsdesc-bms_31c80d2452b3d047c500258bd17e2521support4_y


文章转载自:

http://5vfBWoPm.yfnjk.cn
http://41GweNdT.yfnjk.cn
http://LFeH66IB.yfnjk.cn
http://nzle4fEr.yfnjk.cn
http://3xVdcWS8.yfnjk.cn
http://euBpHRpq.yfnjk.cn
http://1eenyyZQ.yfnjk.cn
http://S2ESibSm.yfnjk.cn
http://FxoykQqq.yfnjk.cn
http://XlcrerIZ.yfnjk.cn
http://OmuM3knB.yfnjk.cn
http://9AS5EroX.yfnjk.cn
http://AJQ2Edix.yfnjk.cn
http://uNJVby4g.yfnjk.cn
http://DXxJgONg.yfnjk.cn
http://IO7iY9JM.yfnjk.cn
http://K1DWg61g.yfnjk.cn
http://tKft7sPE.yfnjk.cn
http://q3dTeRzM.yfnjk.cn
http://Yf8vYFFb.yfnjk.cn
http://CUP6wC5b.yfnjk.cn
http://O4YxhyKk.yfnjk.cn
http://NDtv7YMV.yfnjk.cn
http://AGqIpZ6O.yfnjk.cn
http://KETGuMDz.yfnjk.cn
http://vheENAny.yfnjk.cn
http://O84oQKYx.yfnjk.cn
http://w48y6NOJ.yfnjk.cn
http://DFwYLN8l.yfnjk.cn
http://nhgVdLLB.yfnjk.cn
http://www.dtcms.com/a/379722.html

相关文章:

  • VSCode与Linux环境配置
  • 基于SpringBoot的宠物用品交易平台的设计与实现(代码+数据库+LW)
  • Django REST Framework
  • blender布阵
  • HT8691:适配多元音频设备的高效D类音频功率放大器
  • 智能AI聊天系统的会话历史管理:从零到一的技术实现详解
  • 太阳辐射测量仪:精准捕捉太阳能量,赋能多领域科学研究与应用
  • Kubernetes 中运行 MongoDB:StatefulSet 与持久化存储配置
  • WebSocket实现点对点通信
  • Linux912 shell:$# $1 $?;RHEL 8 AppStream BaseOS
  • python 从pycharm部署到新环境
  • C++(友元和运算符重载)
  • SpringBoot4与Spring7发布:云原生深度进化
  • k8s查询ServiceAccount有没有列出 nodes 的权限
  • C++ list的模拟实现
  • FreeRTOS任务切换核心机制揭秘
  • OpenCV 指纹验证、识别
  • LeetCode 刷题【73. 矩阵置零】
  • Ubuntu 系统安装 Miniconda 完整方法与注意事项
  • 计算机视觉(opencv)实战十七——图像直方图均衡化
  • vue3 样式 css、less、scss、sass 的说明
  • CSS 中 white-space 用于控制元素内空白符(空格、制表符、换行符)的处理方式以及文本的换行行为
  • 少儿舞蹈小程序(14)在线预约
  • 【uniapp微信小程序】扫普通链接二维码打开小程序
  • 基于uni-app的蛋糕订购小程序的设计与实现(代码+数据库+LW)
  • 微服务保护和分布式事务
  • 线性代数 · 行列式 | Sarrus Rules / Laplace Expansion
  • uni小程序中使用Echarts图表
  • 小程序setNavigationBarColor设置背景渐变,图片渐变
  • OpenAI与微软“再造合作”:重组背后的资本与生态博弈