发送给 Spark worker 的文本文件看起来是空的或找不到

Text file sent to Spark worker looks empty or not found

我想向每个 Spark worker 发送一个基本配置文件。配置文件是为 Python 的 configobj 编写的。我在提交工作时指定它。

$ ./bin/spark-submit --files .../config.cfg .../spark_str_hello.py

但是当我试图阅读它时,结果发现它并不存在。当我尝试打印 config.sections(应该是 return 列表)时,打印了空列表。下面是 wordcount 的基本示例。我还尝试使用 foreachRDD 初始化工作人员的配置,结果相同。有什么特殊的方法可以将文本文件发送给 Spark worker?

from pyspark import SparkContext
from pyspark.streaming import StreamingContext
from configobj import ConfigObj

config = ConfigObj('config.cfg')


sc = SparkContext()
ssc = StreamingContext(sc, 1)
lines = ssc.socketTextStream('localhost', 9999)
words = lines.flatMap(lambda x: x.split(' '))
pairs = lines.map(lambda x: (x, 1))
wordCount = pairs.reduceByKey(lambda x, y: x + y)
print config.sections

pairs.pprint()
ssc.start()
ssc.awaitTermination()

您需要使用 SparkFiles.get("FILE") 访问通过 --files

发送的文件