我想在我在 VMWare 的 HDP 2.5 Sandbox 中运行的 Spark 程序中使用本地文本文件。
1)有没有什么拖拽的方式可以直接在VM的HDFS中获取呢?
2) 我可以使用 Zeppelin 导入它吗?如果是,那么如何获取在 Spark 中使用它的绝对路径(位置)?
3)还有其他方法吗?如果是,什么以及如何?
我想在我在 VMWare 的 HDP 2.5 Sandbox 中运行的 Spark 程序中使用本地文本文件。
1)有没有什么拖拽的方式可以直接在VM的HDFS中获取呢?
2) 我可以使用 Zeppelin 导入它吗?如果是,那么如何获取在 Spark 中使用它的绝对路径(位置)?
3)还有其他方法吗?如果是,什么以及如何?
要将数据导入 VM 内的 HDFS,您需要使用hdfs
命令将文件从 VM 内的本地文件系统推送到 VM 内的 HDFS。该命令应类似于:
hadoop fs -put filename.log /my/hdfs/path
有关 HDFS 命令的更多信息,请参阅Hadoop 文件系统 Shell 命令。
说到这里,当你使用 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 或本地文件系统。