我想在我的Spark程序中使用本地文本文件,我在VMWare中的HDP 2.5 Sandbox中运行。
1)是否有任何拖放方式直接在VM的HDFS中获取它?
2)我可以使用Zeppelin导入它吗?如果是,那么如何获得在Spark中使用它的绝对路径(位置)?
3)还有其他方式吗?什么以及如何,如果是的话?
答案 0 :(得分:0)
要在VM中将数据导入HDFS,您需要使用hdfs
命令将VM中本地文件系统中的文件推送到VM中的HDFS。该命令应如下所示:
hadoop fs -put filename.log /my/hdfs/path
有关HDFS命令的更多信息,请参阅Hadoop File System Shell Commands。
这样说,当您使用Apache Spark时,您也可以参考本地文件系统而不是HDFS。为此,您可以使用file:///...
代替hdfs://...
。例如,要通过Spark访问HDFS中的文件,通常可以运行如下命令:
val mobiletxt = sc.textFile("/data/filename.txt")
但您也可以访问VM的本地文件系统,如:
val mobiletxt = sc.textFile("file:///home/user/data/filename.txt")
至于Apache Zeppelin,这是一个与Apache Spark(和其他系统)配合使用的笔记本界面;目前Zeppelin本身没有进口机制。相反,您将在笔记本中执行上述操作,以访问VM的HDFS或本地文件系统。