如何使用目录文件和使用import scala.sys.process程序包计算文件中的行数

问题描述 投票:-1回答:1

我在scala变量中有一个文件名。我想传递变量来容纳文件并计算行数。我正在尝试使用scala.sys.process包来实现。

val file =(“ hadoop fs -ls / user / landing / data”#|“ sort -k6,7”#|“ tail -n1”)。!!。trim文件:String = -rw-r--r-- 3 pa_raviko5 hive 3093 2019-11-22 00:18 /user/landing/data/file.csv

val file_path = file.split(“”).last.trimfile_path:字符串= /user/landing/data/file.csv

scala] ** Seq(“ hadoop”,“ fs”,“ -cat”,file_path,“ |”,“ wc”,“ -l”)。!! ****cat:|': No such file or directory cat: wc':没有这样的文件或目录cat:`-l':没有这样的文件或目录java.lang.RuntimeException:非零退出值:1在scala.sys.package $ .error(package.scala:27)在scala.sys.process.ProcessBuilderImpl $ AbstractBuilder.slurp(ProcessBuilderImpl.scala:132)在scala.sys.process.ProcessBuilderImpl $ AbstractBuilder。$ bang $ bang(ProcessBuilderImpl.scala:102)... 53消失

scala hadoop package
1个回答
0
投票

您不能将管道运算符|用作Seq(...).!!的一部分。这是壳的事情,scala不知道该怎么做。您可以这样称呼bash:Seq(“ bash”,“ -c”,s“”“ hadoop fs -cat” $ file_path“ | wc -l”“”)。!!。

© www.soinside.com 2019 - 2024. All rights reserved.