繁体   English   中英

Spark WholeTextFiles外壳程序与应用程序之间的区别

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM