1

我在 Python 中使用 Spark 3.x。我在 CSV 文件中有一些数据(以百万计),我必须在 Apache Solr 中编制索引。我为此目的部署了 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_module 模块只需将一行数据帧作为 json 获取,然后通过 pysolr 模块在 Solr 中进行索引。Pysolr 支持索引文档列表而不是一个。我必须更新我的逻辑,而不是在每个请求中发送一个文档,而是发送一个文档列表。确定性,它将提高性能。

如何在 PySpark 中实现这一点?是否有任何替代或最佳方法代替 map 和 toJSON ?

此外,我的所有活动都在转换功能中完成。我正在使用 count 来开始工作。spark中是否有任何替代的虚拟函数(动作类型)来做同样的事情?

最后,我每次都必须创建 Solr 对象,有什么替代方法吗?

4

0 回答 0