将文件夹从LocalSystem加载到HDFS

时间:2016-10-20 16:02:47

标签: hadoop hdfs

我的LocalSystem中有一个文件夹。它包含1000个文件,我会将他从我的LocalSystem移动或复制到HDFS

我试过这两个命令:

hadoop fs copyFromLocal C:/Users/user/Downloads/ProjectSpark/ling-spam /tmp

我也试过这个命令:

hdfs dfs -put /C:/Users/user/Downloads/ProjectSpark/ling-spam /tmp/ling-spam

它显示一条错误消息,指出我的目录未找到,但我确信这是正确的。
我找到了一个函数getmerge()来将文件夹从HDFS移动到LocalSystem,但是我找不到反转。

拜托,你能帮助我吗?

2 个答案:

答案 0 :(得分:0)

  

我在Windows上的VirtualBox,我在HDP2.3.2上使用控制台安全shell

您无法将Windows计算机中的文件复制到HDFS。您必须首先将文件存入虚拟机(我建议使用WinSCP或Filezilla),然后才能使用hadoop fs将文件放入HDFS。

错误是正确的,因为HDP沙箱上不存在C:/Users/user/Downloads因为它是Linux机器。

如上所述,您也可以尝试使用Ambari HDFS文件查看器,但我仍然需要注意SCP是官方方式,因为并非所有Hadoop系统都有Ambari(或者至少是Ambari的HDFS文件视图)

答案 1 :(得分:0)

我会将相互信息用于垃圾邮件或火腿这个词的分类。我有这个操作:MI(Word)=ΣProbabi(Occ,Class)* Log2 *(Probabi(Occuren,Class)/ Probabi(Occurren)* Probabi(Class))。 我理解这个功能,我必须计算4个操作(true,ham),(false,ham),(true,spam)和(false,spam)。 我不明白我写的是谁,事实上,我计算了发生的文件的编号。 但我不知道我必须在我的功能中写些什么。 非常感谢你!

这是我职能部队: def computeMutualInformationFactor(     probaWC:RDD [(String,Double)],//给定类中单词出现的概率。     probaW:RDD [(String,Double)],//是否在类中出现该单词的概率     probaC:Double,//电子邮件出现在课堂上的概率(垃圾邮件或火腿)     probaDefault:缺少概率时的双倍//默认值   ):RDD [(String,Double)] = {