将spark3Dataframe索引到apachesolr8中

x6h2sr28  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(235)

我已经在apachespark运行的地方建立了一个小规模的hadoopYarn集群。我有一些数据(json,csv)上传到spark(Dataframe)进行分析。稍后,我必须将所有Dataframe数据索引到apachesolr中。我使用的是spark3和solr8.8版本。
在我的搜索中,我在这里找到了一个解决方案,但它适用于不同版本的spark。因此,我决定向别人要这个。
此任务是否有任何内置选项。我愿意使用solrj和pyspark(不是scal shell)。

56lgkhnf

56lgkhnf1#

我自己找到了解决办法。到目前为止,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).collect()

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

相关问题