Scala 如何理解elasticsearch的spark api
我看到了第页,其中有以下代码行:Scala 如何理解elasticsearch的spark api,scala,apache-spark,elasticsearch,Scala,Apache Spark,elasticsearch,我看到了第页,其中有以下代码行: JavaEsSpark.saveToEs(javaRDD, "spark/docs"); 我试图理解这里的第二个参数spark/docs。在谷歌搜索之后,我看到了github上的页面。它说: def saveToEs(jrdd: JavaRDD[_], resource: String) = EsSpark.saveToEs(jrdd.rdd, resource) 似乎spark/docs是一个资源。据我所知,资源意味着要编制索引的实际文档。但这又是一份怎样
JavaEsSpark.saveToEs(javaRDD, "spark/docs");
我试图理解这里的第二个参数spark/docs
。在谷歌搜索之后,我看到了github上的页面。它说:
def saveToEs(jrdd: JavaRDD[_], resource: String) = EsSpark.saveToEs(jrdd.rdd, resource)
似乎
spark/docs
是一个资源
。据我所知,资源意味着要编制索引的实际文档。但这又是一份怎样的文件呢?它是应该添加文档的索引名吗?我之所以苦苦挣扎,主要是因为我没有找到elasticsearch spark api的官方文档,我对elasticsearch很陌生,而且我不擅长scala 以下代码中有两个方面:
JavaEsSpark.saveToEs(javaRDD, "spark/docs");
上面的代码将数据写入Elasticsearch。这两个论点是:
javaRDD-这将是一个不可变的元素列表,或者在Spark word中是一个RDD
,您希望将其吸收到elasticsearch中
在Java世界中,它们是不可变的序列化对象。在Elasticsearch世界中,它们将是文档
spark/docs-这将是您要接收数据的接收器。换句话说,它是索引
,您的文档(或Spark world中的RDD)将在其中被摄取
简而言之,在elasticsearch中,它是索引名
,后跟类型名
。自版本7.x以来的ES已删除自定义类型名称。因此,为了吸收Elasticsearch中的任何其他索引,您只需指定您自己的\u index\u name/docs
所以基本上是代码JavaEsSpark.saveToEs(javaRDD,“spark/docs”)
只需将javaRDD
中的数据写入或摄取到Elasticsearch的索引spark
希望有帮助 我知道我问这个问题可能听起来很愚蠢。但是我很想知道为什么,而不是被动的否决。是的,这是我的直觉,但是github给第二个参数命名为
resource
,把我弄糊涂了。索引在elasticsearch术语中也被称为资源吗?他们的elasticsearch spark API还有类似java文档的文档吗?不幸的是没有。您必须仔细阅读他们的源代码,才能更多地了解API。然而,我相信你们会在SOF和其他互联网上找到大量的资源来获得更多关于spark ES API示例的信息。大部分代码都在Scala中,但OTOH,您可以学习/阅读Scala。谢谢,这是我评论中第二个问题的答案。你能不能先回答一下(在我最后的评论中用两句话开头)?嘿@anir,抱歉<代码>索引是一种资源,因为文档将存储在elasticsearch
中,而spark是一种分析处理工具。简而言之,您可以隐喻性地将ESt中的索引与RDBMS/数据库中的表进行比较。这有帮助吗?关系数据库包含表,类似的ES索引包含文档,尽管这听起来很奇怪。说索引“包含”文档听起来像我们通常说的索引记录一样令人困惑,至少在关系数据库中是这样。ES的情况也是如此。索引确实为文档编制索引,但它们也包含文档。如果我在以上句子中错了,请纠正我。