我正在python中使用spark 3.x。我有一些csv文件中的数据(以百万计),我必须在ApacheSolr中编制索引。为此,我部署了pysolr模块
import pysolr
def index_module(row ):
...
solr_client = pysolr.Solr(SOLR_URI)
solr_client.add(row)
...
df = spark.read.format("csv").option("sep", ",").option("quote", "\"").option("escape", "\\").option("header", "true").load("sample.csv")
df.toJSON().map(index_module).count()
index_模块只需获取一行 Dataframe 作为json,然后通过pysolr模块在solr中建立索引。pysolr支持索引文档列表,而不是一个。我必须更新我的逻辑,这样我就不会在每个请求中发送一个文档,而是发送一个文档列表。当然,这将提高性能。
如何在pyspark中实现这一点?有没有替代map和tojson的方法或最佳方法?
此外,我的所有活动都在转换函数中完成。我正在使用count来开始这项工作。spark中是否有替代的虚拟函数(动作类型)来执行相同的操作?
最后,我每次都要创建solr对象,有没有其他选择?
暂无答案!
目前还没有任何答案,快来回答吧!