来自windows的rxhadoopcopyfromlocal

2uluyalo  于 2021-06-01  发布在  Hadoop
关注(0)|答案(2)|浏览(375)

从windows复制到远程hdfs的正确语法是什么?
我正在尝试使用rstudio将文件从本地计算机复制到远程hadoop集群

rxHadoopCopyFromLocal("C:/path/to/file.csv", "/target/on/hdfs/")

这个扔

copyFromLocal '/path/to/file.csv': no such file or directory`

注意c:/消失了。
此语法也失败

rxHadoopCopyFromLocal("C:\\path\\to\\file.csv", "/target/on/hdfs/")

有错误的

-copyFromLocal: Can not create a Path from a null string
c0vxltue

c0vxltue1#

dplyrxdf的dev版本现在支持hdfs中的文件。您可以从本机文件系统上传一个文件,如下所示:;这可以从边缘节点和远程客户端进行。

hdfs_upload("c\\path\\to\\file.csv", "/target/on/hdfs")

如果有要上载的数据集(r对象),也可以使用标准dplyr copy_to 动词。这将把数据导入一个xdf文件并上传,返回一个指向上传文件的rxxdfdata数据源。

txt <- RxTextData("file.csv")
hd <- RxHdfsFileSystem()
hdfs_xdf <- copy_to(hd, txt, name="uploaded_xdf")
b1payxdu

b1payxdu2#

这是一个常见的错误。
原来rxhadoopcopyfromlocal命令是hdfs fs-copyfromlocal的 Package 器。它所做的只是从本地文件系统复制到hdfs目标。
在这种情况下 rxSetComputeContext(remotehost) 已设置为远程群集。在远程计算机上,没有c:\path\to\file.csv
这里有几种方法可以把文件拿到那里。
为远程hdfs群集配置本地hdfs-site.xml
确保本地计算机上安装了hadoop工具
编辑本地hdfs-site.xml以指向远程集群
确保 rxSetComputeContext("local")rxHadoopCopyFromLocal("C:\local\path\to\file.csv", "/target/on/hdfs/") scp与远程计算上下文
将文件复制到远程计算机 scp C:\local\path\to\file.csv user@remotehost:/tmp 确保 rxSetComputeContext(remotehost)rxHadoopCopyFromLocal("/tmp/file.csv", "/target/on/hdfs/")

相关问题