3

我正在使用 Sparklyr 库将数据从 R 读取和写入 HDFS。读取数据按预期工作,但写入会出现问题。

为了能够使用 spark_write_csv 函数,我需要将我的 R data.frames 转换为 Spark 对象。我为此使用了 sparklyr sdf_copy_to 函数(也尝试使用 copy_to)。但是,我总是收到错误

代码:

table1 <- sdf_copy_to(sc,dataframe,OVERWRITE=TRUE)
spark_write_csv(table1, "path")

错误:

错误:org.apache.hadoop.mapred.InvalidInputException:输入路径不存在:hdfs://iacchadoopdev01.dap:8020/tmp/Rtmp2gpelH/spark_serialize_62547a7b0f9ad206fd384af04e585deb3a2636ca7b1f026943d4cc1d11c7759a.csv

有人遇到过同样的问题并且知道如何解决吗?

一个可能的原因可能是 sdf_copy_to 函数将数据存储到我的 linux /tmp 文件夹中,而 write 函数正在寻找 HDFS /tmp 文件夹中的数据。

4

1 回答 1

0

我有同样的问题。您需要将 .csv 放入 hdfs。您可以通过 shell 执行此操作。

您通过 ssh 登录到您的集群。然后你使用'put'将.csv 放入hdfs。

连接到集群后在 shell 中写入:

hdfs dfs 'path to local file/file.csv' put 'path to folder in your hdfs'

然后您将使用 hdfs 路径来加载文件。

于 2017-05-30T15:30:56.023 回答