apache-spark - 带有Spark的Elasticsearch,基于数据框列的动态索引创建

标签 apache-spark elasticsearch apache-spark-sql elasticsearch-spark

我有一个 Spark 数据框,其中有一列说“名称”。该名称在单个数据框中可以具有不同的值。
当我使用spark(scala)将数据写入elasticsearch时,我想根据“名称”列的值将数据写入不同的索引。

dataframe.saveToEs("index-name")

saveToEs需要一个字符串,我正在寻找以下内容:
dataframe.saveToEs(col(""))

或类似的地方,我可以在写入期间分配值。

最佳答案

神话,

我只是在文档中看到您可以使用类似以下内容的东西:

rdd.saveToEs("my-collection-{media_type}/doc")

这使您能够:

Save each object based on its resource pattern, in this example based on media_type. For each document/object about to be written, elasticsearch-hadoop will extract the media_type field and use its value to determine the target resource.



资源 :
https://www.elastic.co/guide/en/elasticsearch/hadoop/master/spark.html#spark-write-dyn-scala

关于apache-spark - 带有Spark的Elasticsearch,基于数据框列的动态索引创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59692025/

相关文章:

scala - 如果 csv 列标题包含空格,则在 Spark 中将 csv 转换为 parquet 会出错

apache-spark - HBase 表上的 SparkSQL

apache-spark - 在 Spark ML 中,为什么在具有数百万个不同值的列上安装 StringIndexer 会产生 OOM 错误?

scala - Spark Scala 中的列操作

logging - ELK - Logstash + Redis - 数据复制

security - 追溯保护Elasticsearch安装

apache-spark - 使用 Faker 和 PySpark Dataframe 匿名数据

apache-spark - Spark 流应用程序中的异常处理

python - 如何将数组(即列表)列转换为 Vector

scala - Spark 流式 Elasticsearch 依赖项