Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何理解elasticsearch的spark api_Scala_Apache Spark_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Scala,Apache Spark,elasticsearch" /> elasticsearch,Scala,Apache Spark,elasticsearch" />

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的情况也是如此。索引确实为文档编制索引,但它们也包含文档。如果我在以上句子中错了,请纠正我。