Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark wholeTextFiles shell和应用程序之间的差异_Apache Spark - Fatal编程技术网

Apache spark Spark wholeTextFiles shell和应用程序之间的差异

Apache spark Spark wholeTextFiles shell和应用程序之间的差异,apache-spark,Apache Spark,我复制粘贴了一行,看起来像这样 val files = sc.wholeTextFiles("file:///path/to/files/*.csv") 从运行Spark shell到不运行的应用程序。相反,我得到的模式匹配0个文件,即使在shell中,我可以看到所有文件并由Spark读取它们 我错过了什么?这是文件权限问题吗 我正在按如下方式运行该应用程序: spark-submit \ --master yarn \ --deploy-mode cluster \ --file

我复制粘贴了一行,看起来像这样

val files = sc.wholeTextFiles("file:///path/to/files/*.csv")
从运行Spark shell到不运行的应用程序。相反,我得到的模式匹配0个文件,即使在shell中,我可以看到所有文件并由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
参数中传递文件。这将把文件发送给所有执行者,以便他们都有权访问该文件。

为了使其正常工作,您的所有执行者都需要访问该文件。如果文件不在每个执行器的本地文件系统中,那么您将遇到问题

一个选项是将文件放在hdfs上,并提供路径为
hdfs:/path/to/file.csv
。这样所有的执行人都可以访问它


另一个选项是在
--files
参数中传递文件。这将把文件发送给所有执行者,以便他们都能访问它。

您的文件是存在于本地文件系统还是hdfs中?您提供的是绝对路径还是相对路径?它位于本地FS上,路径如模拟示例中所示:绝对。您如何运行应用程序?打包为程序集jar(带sbt程序集)然后通过
spark submit
--master warn cluster
选项提交到集群(见原始问题和编辑)。您的文件是否存在于本地文件系统或hdfs中?您提供的是绝对路径还是相对路径?它位于本地FS上,路径如模拟示例中所示:绝对。如何运行应用程序?打包为程序集jar(带sbt程序集)然后通过
spark submit
--master warn cluster
选项提交到集群(见原始问题和编辑)。是的,我刚离开笔记本电脑就发现了这个问题。HDFS是最好的解决方案。谢谢顺便说一句,我仍然感到困扰的是,在火花壳中,这是有效的。壳牌公司怎么能解决这个问题?它是否只使用本地节点(即1个执行器)?Spark Shell可以工作,因为它在文件所在的本地启动应用程序主节点@IanYep,我在离开笔记本电脑后发现了一个。HDFS是最好的解决方案。谢谢顺便说一句,我仍然感到困扰的是,在火花壳中,这是有效的。壳牌公司怎么能解决这个问题?它是否只使用本地节点(即1个执行器)?Spark Shell之所以能工作,是因为它在文件所在的@Ian位置本地启动应用程序主节点