【问题标题】:Sparklyr copy_to failsSparklyr copy_to 失败
【发布时间】:2017-07-20 23:49:56
【问题描述】:

我正在使用 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 文件夹中查找数据。

【问题讨论】:

  • 不知道是否与问题有关(可能没有)但OVERWRITE不应该是小写吗?
  • 感谢您的回复。刚刚尝试用小写覆盖,但给出了同样的错误。
  • 您可以尝试使用 Spark DataFrame 的名称(此处为"dataframe"?)而不是table1(R 包装器的名称)吗?

标签: r hadoop apache-spark sparklyr


【解决方案1】:

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

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

连接集群后在shell中写入:

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

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

【讨论】:

    猜你喜欢
    • 2019-10-02
    • 2017-12-09
    • 2017-11-08
    • 2017-07-30
    • 2018-08-18
    • 1970-01-01
    • 2019-12-25
    • 2018-07-15
    • 2017-05-14
    相关资源
    最近更新 更多