【发布时间】:2016-10-26 20:38:13
【问题描述】:
我正在尝试通过 spark 中的 map 函数进行函数调用。
我做了 spark 教程页面 (https://spark.apache.org/docs/1.2.0/programming-guide.html) 中给出的内容。但是函数myFunc 永远不会被调用。至少我是这么认为的。我不知道我是做错了什么还是错过了什么。
这是以下代码:
from pyspark import SparkContext
if __name__ == "__main__":
def myFunc(s):
print("@@")
words = s.split("\n")
print("##")
return len(words)
sc = SparkContext("local","test")
sc.textFile("C:\\TestLogs\\sample.log").map(myFunc)
print("**")
输出:
**
事实上,除了文件位置之外,这与 spark doc 中的示例相同。
【问题讨论】:
-
我不懂 Python,但你用参数定义了你的函数。当你调用它时,你没有传递任何参数。你确定没问题?
-
@kaks 我不知道 Spark,但是映射的东西 empty 甚至不会调用一次函数。您能否确认您的文件确实提供了任何数据?
-
@facundop :是的,它有一个参数。但是在 spark 文档中,在 map 中,
myFunc不带参数,即使函数是用s定义的。 @ŁukaszRogalski:是的,sample.log 文件有 10 个日志行。
标签: python-3.x apache-spark pyspark