在pySpark中,是否可以向Map函数传递额外的参数?具体来说,我有以下代码配方:
raw_data_rdd = sc.textFile("data.json", use_unicode=True)
json_data_rdd = raw_data_rdd.map(lambda line: json.loads(line))
mapped_rdd = json_data_rdd.flatMap(processDataLine)
字符串
函数processDataLine
除了JSON对象之外还需要额外的参数,如下所示:
def processDataLine(dataline, arg1, arg2)
型
如何将额外的参数arg1
和arg2
传递给flaMap
函数?
1条答案
按热度按时间ut6juiuv1#
1.您可以直接在
flatMap
中使用匿名函数字符串
或咖喱
processDataLine
型
1.你可以像这样生成
processDataLine
:型
toolz
库提供了有用的curry
装饰器:型
注意,我已经将
dataline
参数推到了最后一个位置。这不是必需的,但这样我们就不必使用关键字args了。1.最后,Avihoo Mamka已经在评论中提到了
functools.partial
。