2017-05-23 3 views
0

WindowsからリモートHDFSにコピーする正しい構文は何ですか?WindowsからのrxHadoopCopyFromLocal

私はこれが

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

お知らせCスローRStudio

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

を使用してリモートHadoopクラスタに自分のローカルマシンからファイルをコピーしようとしている:/消えたを。

この構文も、これはよくある間違いであるエラー

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

答えて

1

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

を失敗しました。

rxHadoopCopyFromLocalコマンドは、hdfs fs -copyFromLocalのラッパーです。ローカルファイルシステムからhdfsターゲットにコピーするだけです。

この場合、rxSetComputeContext(remotehost)はリモートクラスタに設定されています。リモートマシンでは、C:\ path \ to \ file.csvはありません

ここにファイルを取得する方法はいくつかあります。

リモートのHDFSクラスタの設定ローカルHDFS-site.xmlの

  • リモートクラスタを指すように、ローカルマシン
  • 編集し、ローカルHDFS-site.xmlの上のHadoopツールをインストールしていることを確認
  • 確認rxSetComputeContext("local")
  • 実行rxHadoopCopyFromLocal("C:\local\path\to\file.csv", "/target/on/hdfs/")

SCPとリモートの計算コンテキスト

  • scp C:\local\path\to\file.csv [email protected]:/tmp
  • でリモートマシンにファイルをコピーしrxSetComputeContext(remotehost)
  • 実行rxHadoopCopyFromLocal("/tmp/file.csv", "/target/on/hdfs/")
+0

MRS9。1には、クライアントからリモートクラスタにコピーするための 'rxHadoopCopyFromClient'もあります。それが以前のバージョンであったかどうかは分かりません。 –

0

dev version of dplyrXdfは今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") 
関連する問題