我需要遍历磁盘上的大量文件列表,打开每个文件并解析它。我有一个带有文件名的文件,我只需要遍历这些文件名。
我将此函数传递给map():
%python
def parse(filename):
try:
tf = sc.textFile(filename)
# run parsing code, produce text
return text
except:
return None
当我尝试运行以下命令时:
parsed_contents = filenames.map(parse)
parsed_contents.top(5)
我收到此错误:
例外:您似乎正试图从广播变量、操作或转换中引用 SparkContext。SparkContext 只能在驱动程序上使用,不能在它在工作人员上运行的代码中使用。有关详细信息,请参阅 SPARK-5063。
如果我单独运行 try 块中的代码并指定文件名,则该代码将起作用。
我应该如何遍历指定的文件列表,提取它们的内容?