Linux 由于转义字符,获取文件未找到错误

Linux 由于转义字符,获取文件未找到错误,linux,shell,apache-spark-sql,spark-shell,Linux,Shell,Apache Spark Sql,Spark Shell,我试图通过java代码在Linux终端中执行下面的spark shell命令 echo spark.sparkContext.parallelize\(1 to 3,3\).map\(x => \ (x,\"city_\"+x\)\).toDF\(\"num",\"city\"\).write.partitionBy\(\"num\"\).mode\ (SaveMode.Overwrite\).parquet\(\"/tmp/abinash\"\) | /opt/ab/cd/de/spar

我试图通过java代码在Linux终端中执行下面的spark shell命令

echo spark.sparkContext.parallelize\(1 to 3,3\).map\(x => \
(x,\"city_\"+x\)\).toDF\(\"num",\"city\"\).write.partitionBy\(\"num\"\).mode\
(SaveMode.Overwrite\).parquet\(\"/tmp/abinash\"\) | /opt/ab/cd/de/spark-shell
但对于/tmp/abinash,即使文件存在,也不会得到这样的文件或目录错误

我尝试了很多方法来解决这个问题。但没有取得任何成功。 我认为转义字符有问题

有谁能帮我解决我这里做错了什么。

试试这个

> echo "spark.sparkContext.parallelize(1 to 3,3).map(x => (x,\"city_\"+x)).toDF(\"num\",\"city\").write.partitionBy(\"num\").mode(SaveMode.Overwrite).parquet(\"/tmp/abinash\")"
spark.sparkContext.parallelize(1 to 3,3).map(x => (x,"city_"+x)).toDF("num","city").write.partitionBy("num").mode(SaveMode.Overwrite).parquet("/tmp/abinash")

移除管道并检查echo写入的字符串。看看它是否符合你的期望。考虑使用遗传算法生成输入,而不是回音。如果它有帮助,请考虑接受答案和投票。