【问题标题】:Getting file not found error because of escape character由于转义字符,获取文件未找到错误
【发布时间】:2018-10-08 23:40:39
【问题描述】:

我正在尝试通过 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写入的字符串。看看它是否符合您的期望。考虑使用 heredoc 来生成输入,而不是 echo

标签: linux shell apache-spark-sql spark-shell


【解决方案1】:

试试这个。

> 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")

【讨论】:

  • 如果有帮助,请考虑接受答案并点赞
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多