pysparkMap函数-发送n行而不是一行来构建列表

whlutmcx  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(200)

我正在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对象,有没有其他选择?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题