apache-spark - 从 spark 调用 elasticsearch“_count”端点
问题描述
问题:计算elasticsearch中按日期从spark过滤的记录数
请帮助查找如何直接从 spark (2.4.0) 调用此端点
POST index_name.*/_count
{
"query": {
"range": {
"date_field_name": {
"gte": "2021-02-09",
"lte": "2021-02-09"
}
}
}
}
我已经尝试了以下解决方案,但它非常慢,因为计算是在 spark 端(不是通过 elasticsearch)完成的,并且数据量很大
val esQuery = f"""{
"bool": {
"filter": [
{
"range": {
"date_field_name": {
"gte": "2021-02-09",
"lte": "2021-02-09"
}
}
}
]
}
}""".stripMargin
var df = spark.sqlContext.read.format("es").option("es.query", esQuery).load("index_name.*").select(col("date_field_name")).groupBy("date_field_name").count()
解决方案
推荐阅读
- python - 如何在python“AttributeError:模块'serial'没有属性'Serial'”中修复此错误
- php - Laravel Eloquent 查询按平均评论评分过滤项目
- java - 我为计算器制作了 gui 程序,但如果文本字段中的值是字符串,我想在 java 中显示确认消息
- reactjs - 未捕获的错误:共享模块不可用于 React 模块联合中的即时消费
- c# - 无法解决此错误 Program.cs(14,33): 错误 CS0029: 无法将类型 'int' 隐式转换为 'char[]'
- scala - Sbt 包装脚本
- webstorm - WebStorm - 在每次提交之前删除 console.log
- python - python中是否有一个函数可以将散点图拟合到sin函数?
- javascript - 尝试将 Magicmouse.js 添加到自定义 wordpress 主题 - 无法加载
- php - 在 php Cpanel 中管道恢复电子邮件