pig grunt shell中的copyFromLocal错误

时间:2016-05-22 17:14:33

标签: shell hadoop mapreduce apache-pig

我在hdfs中为一个项目创建了director,它的名字叫cert_project 尝试将名为Load Data.csv的csv文件从本地复制到hdfs。

$ hadoop fs -CopyFromLocal c:\Load Data.csv /home/edureka/aprl_25th_morng/cert_project/Load Data.csv

我收到错误。我尝试了终端和咕噜> (咕噜贝壳)

需要帮助。

6 个答案:

答案 0 :(得分:0)

因为文件名中有空格所以它是自己的。尝试重命名文件名中没有空格的文件或尝试其中一个:

hadoop fs -CopyFromLocal 'c:\Load%20Data.csv' '/home/edureka/aprl_25th_morng/cert_project/Load Data.csv'

OR

hadoop fs -CopyFromLocal 'c:\Load%20Data.csv'  '/home/edureka/aprl_25th_morng/cert_project/'`

在unix文件系统中,空格表示为%20(不在hdfs中)。因此,如果需要从hdfs中删除/复制文件,则需要引用并且不需要%20

hadoop fs -rm '/home/edureka/aprl_25th_morng/cert_project/Load Data.csv'

答案 1 :(得分:0)

使用-copyFromLocal,您正在使用人均C ..更多检查此链接以获取更多copyFromLocal

答案 2 :(得分:0)

命令是copyFromLocal。你正在使用CopyFromLocal。

答案 3 :(得分:0)

您也可以尝试

hadoop fs -put $localFile $hadoopFile

确保您已预先创建父目录

创建目录

hadoop fs -mkdir -p $hadoopFolder

答案 4 :(得分:0)

使用它 hadoop fs - copyFromLocal c:\ Load Data.csv / home / edureka / aprl_25th_morng / cert_project / Load Data.csv

copyFromLocal中的c不得为CAPS。

答案 5 :(得分:0)

如果您希望从Pig grunt shell运行该命令,您应该写下这样的内容:

public static function addKeyPhraseToPivotTable($ids) {

    $locations = Location::where('account_id', self::$items[0]['account_id'])->get();
    $urls = Url::where('account_id', self::$items[0]['account_id'])->get();

    if($locations->count() > 0 && $urls->count() > 0) {
        foreach($ids as $keyPhraseId) {
            foreach($locations as $location) {
                foreach($urls as $url) {
                    $url->keywords()->attach([$keyPhraseId, $location->id]);
                }
            }
        }
    }
}

确保源文件位于运行grunt shell的Linux服务器的本地文件系统上,并且您对HDFS上的目录具有写入权限,您尝试复制本地文件。