我在 elasticsearch 中有一个索引,它被一些与时间戳相关的json文件占用。我想从该索引中删除数据。
curl -XDELETE http://localhost:9200/index_name
Run Code Online (Sandbox Code Playgroud)
上面的代码删除了整个索引。我的要求是在一段时间后(例如 1 周后)删除某些数据。我可以自动执行删除过程吗?
我尝试使用curator删除。
但我认为它删除了创建的索引timestamp,而不是索引中的数据。我们可以使用 curator 删除索引中的数据吗?
如果我知道以下任一项可行,我会很高兴:
参考资料来自elasticsearch的官方网站。
非常感谢。
我需要从现有的 DataFrame 创建一个 DataFrame,在其中我还需要更改架构。
我有一个像这样的数据框:
+-----------+----------+-------------+
|Id |Position |playerName |
+-----------+-----------+------------+
|10125 |Forward |Messi |
|10126 |Forward |Ronaldo |
|10127 |Midfield |Xavi |
|10128 |Midfield |Neymar |
Run Code Online (Sandbox Code Playgroud)
我是使用下面给出的案例类创建的:
case class caseClass (
Id: Int = "",
Position : String = "" ,
playerName : String = ""
)
Run Code Online (Sandbox Code Playgroud)
现在我需要在结构类型下创建玩家名和位置。
IE,
我需要创建另一个带有模式的 DataFrame,
根
|-- ID: int (nullable = true)
|-- 玩家详细信息:结构(可空 = true)
| |--玩家名:字符串(可空 = true)
| |--位置:字符串(可空 = true)
我通过引用链接https://medium.com/@mrpowers/adding-structtype-columns-to-spark-dataframes-b44125409803执行了以下代码来创建新的数据框
我的模式是
List(
StructField("Id", …Run Code Online (Sandbox Code Playgroud) 我有一个文本文件,其中包含一行
球员={“梅西”:{“详细信息”:{“进球”:500},“国家”:“阿根廷”},“内马尔”:{“俱乐部”:[“桑托斯”,“巴塞罗那足球俱乐部”,“巴黎圣德文"], "国家":"巴西"}}
现在我使用正则表达式来提取
{“梅西”:{“详细信息”:{“进球”:500},“国家”:“阿根廷”},“内马尔”:{“俱乐部”:[“桑托斯”,“巴塞罗那足球俱乐部”,“巴黎圣德意志人” "],"国家":"巴西"}}
从文本文件并将其传递给接受值作为String的 case 类。
我正在使用这个案例类制作一个数据框。
在我的情况下,每一行的内容可能与 JSON 字符串不同。所以我正在寻找一个通用的解决方案来将任何复杂的 Json 字符串转换为 Map 值。
检查dataframe.printSchema 时,我将玩家列作为字符串类型获取。但我需要它作为一个 Map 类型,它包含一个 Key 和一个值作为 Struct 类型。我尝试了此链接中提到的方法
当我使用这种方式时,出现错误
"org.json4s.package$MappingException: 不知道如何将 JObject(List((Details,JObject(List((Goals,JString(500))))), (Country,JString(Argentina)))) 转换成类java.lang.String "
我使用了以下解决方案
在 Scala 中将 JSON 字符串转换为 JSON 对象
但这些对我也不起作用。
这是我的案例课
case class caseClass (
Players :String = ""
)
Run Code Online (Sandbox Code Playgroud)
我正在使用用户定义的函数提取 json 字符串。
简单地说,我的要求是我有一个复杂的 Json 字符串,其中包含键和值,如结构、列表等。
所以我想将字符串转换为其相应的 JSON,该 JSON 拥有与其内容相关的正确模式。
敬请期待有价值的解决方案。