将 Spark 3 Dataframe 索引到 Apache Solr 8

Indexing of Spark 3 Dataframe into 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 module does not support these versions of Spark (3.0.2) and Solr (8.8). I have first installed 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()

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