[英]Spark wholeTextFiles difference between shell and app
我已经复制粘贴了看起来像这样的一行
val files = sc.wholeTextFiles("file:///path/to/files/*.csv")
从运行它的Spark shell到不运行的应用程序。 相反,我知道该模式匹配0个文件,即使在外壳中我可以看到所有文件,Spark也会读取它们。
我想念什么? 这是文件权限问题吗?
我正在运行该应用程序,如下所示:
spark-submit \
--master yarn \
--deploy-mode cluster \
--files /usr/hdp/current/spark/conf/hive-site.xml \
--num-executors 20 \
--driver-memory 8G \
--executor-memory 4G \
--class com.myorg.pkg.MyApp \
MyApp-assembly-0.1.jar
为了使其正常工作,所有执行者都需要访问该文件。 如果该文件不在每个执行程序的本地文件系统上,那么您将遇到问题。
一种选择是将文件放在hdfs上,并将路径提供为hdfs:/path/to/file.csv
。 这样,所有执行者都可以访问它。
另一个选择是在--files
参数中传递文件。 这会将文件发送给所有执行者,以便他们都可以访问它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.