尝试通过scala代码运行一些外部命令。
这是一行
import sys.process._
("hdfs dfs -cat /data/test/zipfiletest/filename")!
这里不是直接指定文件名,而是在scala变量中有这个文件名。 如何将此文件名附加到现有命令。
尝试过类似的事情:
("hdfs dfs -cat /data/test/zipfiletest/")+filename!
但这不起作用。 还有其他办法吗?
答案 0 :(得分:2)
尝试这样:
import sys.process._
(s"hdfs dfs -cat /data/test/zipfiletest/$filename")!
答案 1 :(得分:2)
您可以使用字符串插值或字符串连接
字符串插值:
import sys.process._
(s"hdfs dfs -cat /data/test/zipfiletest/$filenameVariable")!
字符串连接:
import sys.process._
("hdfs dfs -cat /data/test/zipfiletest/" + filename)!
个人我会去字符串插值,更具可读性
答案 2 :(得分:1)
您可以使用字符串插值,例如
s"hdfs dfs -cat $myVariable"
但请注意文件名是否包含空格!因此,您可能更喜欢使用API调用来单独调用每个参数来调用Unix命令(而不是让API分别解析每个参数 - 这将在上面的场景中失败)