为什么Pyspark认为我的文件在本地不存在



我正在尝试使用本地生活的pyspark读取文本文件,这告诉我文件不存在:

sc = SparkContext()
sc._conf.setMaster("local[*]")
sc.setLogLevel("DEBUG")
sqlContext = SQLContext(sc)
inpath='file:///path/to/file'
input_data = sqlContext.read.text(inpath)

我得到了:

Py4JJavaError: An error occurred while calling o52.showString.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0, <hostname>): java.io.FileNotFoundException: File file:/path/to/file does not exist

我知道,当您在本地读取文件时,在群集上运行此文件时,您需要确保更改Spark的配置。但是,这是位于主节点上的,并且不需要在所有节点上分发文件。

我检查了这个问题如何在sc.textfile而不是HDF中加载本地文件,然后我尝试了建议设置sc._conf.setMaster("local[*]")的建议,但这无济于事 - 重新启动Spark上下文并重新启动它仍然不起作用。<<<<<<<<<<<<<<<<<<<<<<<</p>

我还有其他设置可以更改以使其可以工作吗?

创建SparkContext对象时启动火花过程。 这意味着,如果您在创建它后尝试设置配置值,则已经为时已晚。在创建SparkContext之前,您应该设置任何配置值。例如:

conf = SparkConf()
conf = conf.setMaster('local[*]')
sc = SparkContext(conf)

另外,您可以在spark-default.conf文件中设置主机,也可以在使用Spark-Submit或Pyspark运行Spark时使用" -Master Local"命令行参数。

相关内容

  • 没有找到相关文章

最新更新