小编ADA*_*H K的帖子

如何在一段时间后从elasticsearch中的特定索引中删除数据?

我在 elasticsearch 中有一个索引,它被一些与时间戳相关的json文件占用。我想从该索引中删除数据。

curl -XDELETE http://localhost:9200/index_name
Run Code Online (Sandbox Code Playgroud)

上面的代码删除了整个索引。我的要求是在一段时间后(例如 1 周后)删除某些数据。我可以自动执行删除过程吗?

我尝试使用curator删除。

但我认为它删除了创建的索引timestamp,而不是索引中的数据。我们可以使用 curator 删除索引中的数据吗?

如果我知道以下任一项可行,我会很高兴:

  • Curl Automate 可以在一段时间后从索引中删除数据吗?
  • curator Automate 可以在一段时间后从索引中删除数据吗?
  • 有没有像python脚本这样的其他方法来完成这项工作?

参考资料来自elasticsearch的官方网站。

非常感谢。

curl elasticsearch logstash kibana elasticsearch-curator

5
推荐指数
1
解决办法
5187
查看次数

如何从现有数据框创建数据框并将特定字段设置为结构类型?

我需要从现有的 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)

java scala dataset dataframe apache-spark

5
推荐指数
1
解决办法
2782
查看次数

如何在Scala中将复杂的JSON字符串转换为MAP

我有一个文本文件,其中包含一行

球员={“梅西”:{“详细信息”:{“进球”:500},“国家”:“阿根廷”},“内马尔”:{“俱乐部”:[“桑托斯”,“巴塞罗那足球俱乐部”,“巴黎圣德文"], "国家":"巴西"}}

现在我使用正则表达式来提取

{“梅西”:{“详细信息”:{“进球”:500},“国家”:“阿根廷”},“内马尔”:{“俱乐部”:[“桑托斯”,“巴塞罗那足球俱乐部”,“巴黎圣德意志人” "],"国家":"巴西"}}

从文本文件并将其传递给接受值作为String的 case 类。

我正在使用这个案例类制作一个数据框。

在我的情况下,每一行的内容可能与 JSON 字符串不同。所以我正在寻找一个通用的解决方案来将任何复杂的 Json 字符串转换为 Map 值。

检查dataframe.printSchema 时,我将玩家列作为字符串类型获取。但我需要它作为一个 Map 类型,它包含一个 Key 和一个值作为 Struct 类型。我尝试了此链接中提到的方法

如何将 json 字符串转换为 Scala 映射?

当我使用这种方式时,出现错误

"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 拥有与其内容相关的正确模式。

敬请期待有价值的解决方案。

java json scala intellij-idea apache-spark

5
推荐指数
1
解决办法
1758
查看次数