Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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管道中使用的脚本执行了多少次。?_Apache Spark - Fatal编程技术网

Apache spark spark管道中使用的脚本执行了多少次。?

Apache spark spark管道中使用的脚本执行了多少次。?,apache-spark,Apache Spark,我尝试了下面的spark scala代码,得到了如下所述的输出。 我试图将输入传递给脚本,但它没有收到,当我使用collect时,脚本中使用的print语句出现了两次 首先是我的简单且非常基本的perl脚本: #!/usr/bin/perl print("arguments $ARGV[0] \n"); // Just print the arguments. 我的火花代码: object PipesExample { def main(args:Array[String]){ v

我尝试了下面的spark scala代码,得到了如下所述的输出。 我试图将输入传递给脚本,但它没有收到,当我使用collect时,脚本中使用的print语句出现了两次

首先是我的简单且非常基本的perl脚本:

#!/usr/bin/perl
print("arguments $ARGV[0] \n"); // Just print the arguments.
我的火花代码:

object PipesExample {
  def main(args:Array[String]){
    val conf = new SparkConf();

    val sc = new SparkContext(conf);

    val distScript = "/home/srinivas/test.pl"
    sc.addFile(distScript)

    val rdd = sc.parallelize(Array("srini"))

    val piped = rdd.pipe(Seq(SparkFiles.get("test.pl")))

    println(" output " + piped.collect().mkString(" "));

  }
}
输出是这样的

 output arguments arguments 
1) 我犯了什么错误使它无法接受这些论点。? 2) 为什么要执行两次


如果它看起来太简单,请向我道歉。我试图尽可能地理解,并想澄清我的疑问。

根据我的经验,它执行了两次,因为spark将RDD划分为两个分区,每个分区都传递给外部脚本。

根据我的经验,它执行两次,因为spark将RDD划分为两个分区,每个分区都传递给外部脚本。

应用程序无法选择test.pl文件的原因是,该文件位于某个节点的位置。但应用程序主节点是在集群中的一个节点中创建的。因此,如果文件不在该节点中,它将无法拾取该文件


您应该始终将文件保存在HDFS或S3中以访问外部文件。或者通过spark命令选项传递HDFS文件位置。

应用程序无法拾取test.pl文件的原因是,该文件位于某个节点的位置。但应用程序主节点是在集群中的一个节点中创建的。因此,如果文件不在该节点中,它将无法拾取该文件


您应该始终将文件保存在HDFS或S3中以访问外部文件。或者通过spark命令选项传递HDFS文件位置。

集群中有多少实例?只有一个实例。事实上,我正在ubuntu的本地spark安装上尝试,没有覆盖任何配置,你可以看到,我也没有添加分区。你的集群中有多少实例?只有一个实例。事实上,我正在ubuntu的本地spark安装上试用它,没有覆盖任何配置,您可以看到,我也没有添加分区。