是否可以让spark将本地文件作为输入,但是将其处理为分发?
我的代码中有sc.textFile(file:///path-to-file-locally)
,我知道该文件的确切路径是正确的。然而,我仍在接受
Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 1.0 failed 4 times, most recent failure: Lost task 0.3 in stage 1.0 (TID 14, spark-slave11.ydcloud.net): java.io.FileNotFoundException: File file:/<path to file> does not exist
我正在运行spark分布式,而不是本地运行。为什么存在错误?
答案 0 :(得分:3)
有可能但是当您将本地路径声明为输入时,它必须存在于每个工作机器和驱动程序上。因此,这意味着您必须先手动或使用SparkFiles
等内置工具进行分发。
答案 1 :(得分:3)
文件必须位于集中位置,所有节点都可以访问。这可以通过使用分布式文件系统来实现,dse提供了称为CFS(Cassandra文件系统)的HDFS的替代品。使用-k选项在分析模式下启动dse时,cfs可用。
有关设置和使用cfs的更多详细信息,您可以查看以下链接http://docs.datastax.com/en/datastax_enterprise/4.8/datastax_enterprise/ana/anaCFS.html