如何使用scala在ApacheSpark中运行shell文件

如何使用scala在ApacheSpark中运行shell文件,scala,shell,apache-spark,spark-streaming,Scala,Shell,Apache Spark,Spark Streaming,我需要在spark中的代码末尾使用scala执行一个shell文件。我在代码中使用了count和groupby函数。我应该提到的是,我的代码在没有最后一行代码的情况下可以完美地工作 (import sys.process._ /////////////////////////linux commands val procresult="./Users/saeedtkh/Desktop/seprator.sh".!!) 你能帮我修一下吗。你快到了。您需要添加到命令末尾。例如: import sy

我需要在spark中的代码末尾使用scala执行一个shell文件。我在代码中使用了count和groupby函数。我应该提到的是,我的代码在没有最后一行代码的情况下可以完美地工作

(import sys.process._
/////////////////////////linux commands
val procresult="./Users/saeedtkh/Desktop/seprator.sh".!!)

你能帮我修一下吗。

你快到了。您需要添加到命令末尾。例如:

import sys.process._
val a = Seq("sh", "-c", " cal ").!!
println(a)
我使用Seq的原因是,您可以更好地控制所传递的参数。
请参阅本文:

您必须使用Scala SDK中的
sys.process.\u
包,并将DSL与
一起使用

import sys.process._
val result = "ls -al".!
或者使用scala.sys.process.process
进行同样的操作:

import scala.sys.process._
Process("cat data.txt")!

我很确定这个异常不是源于代码。我认为您的查询使用了
groupBy
count
运算符或函数(请参见
partial\u count(1)
)。而且,
Scan ExistingRDD
让我觉得您使用Kafka作为流式查询(结构化流式)的源。我错了多少?@JacekLaskowski:你是对的。我认为这是因为我的火花版本或其他东西!现在我该怎么办?你能粘贴整个stacktrace吗?我认为你没有向我们展示最相关的部分。谢谢@杰克拉斯科夫斯基:找到了解决办法。因为我的数据集中有问题,当我在程序中添加上述代码时,这个问题就出现了。很抱歉,谢谢你。