Eda*_*ame 0 python lambda apache-spark pyspark
我在我的pyspark map函数中添加了一个额外的操作.
原来的功能是:
results = input.map(lambda row:process_myData(row))
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.然后我尝试添加如下的附加操作:
results = input.map{lambda row:
row1 = row.replace("abc","def")
process_myData(row1)}
Run Code Online (Sandbox Code Playgroud)
然后我得到了下面的语法错误:
results = input.map{lambda row:
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?谢谢!
你没看过这本手册.Lambda表达式是一个表达式,因此不能包含语句.如果你不相信你可以从以下开始跟踪可能的扩展:
lambda_expr ::= "lambda" [parameter_list]: expression
lambda_expr_nocond ::= "lambda" [parameter_list]: expression_nocond
Run Code Online (Sandbox Code Playgroud)
如果要使用语句,则必须使用标准函数:
def f(row):
row1 = row.replace("abc","def")
return process_myData(row1)
input.map(f)
Run Code Online (Sandbox Code Playgroud)
虽然在这里一个简单的组合就足够了:
input.map(lambda row: process_myData(row.replace("abc","def")))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
537 次 |
| 最近记录: |