微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 Spark 3 数据帧索引到 Apache Solr 8

如何解决将 Spark 3 数据帧索引到 Apache Solr 8

我已经设置了一个小型 Hadoop Yarn 集群,Apache Spark 正在其中运行。我有一些数据(JSON、CSV)上传到 Spark(数据框)进行一些分析。后来,我必须将所有数据帧数据索引到 Apache SOlr 中。我使用的是 Spark 3 和 Solr 8.8 版本。

在我的搜索中,我找到了一个解决方here,但它适用于不同版本的 Spark。因此,我决定向某人求助。

此任务是否有任何内置选项。我愿意使用 SolrJ 和 pySpark(不是 scal shell)。

解决方法

我自己找到了解决方案。到目前为止,Lucidword spark-solr 模块不支持这些版本的 Spark (3.0.2) 和 Solr (8.8)。我首先安装了 PySolr 模块,然后使用以下示例代码来完成我的工作:

import pysolr
import json

def solrIndexer(row):
    solr = pysolr.Solr('http://localhost:8983/solr/spark-test')
    obj = json.loads(row)
    solr.add(obj)

#load data to dataframe from HDFS
csvDF = spark.read.load("hdfs://hms/data/*.csv",format="csv",sep=",",inferSchema="true",header="true")

csvDF.toJSON().map(solrIndexer).count()

如果以上代码有更好的选择或改进,欢迎回答。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。