我正在使用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文件夹中查找数据。
答案 0 :(得分:0)
我遇到了同样的问题。您需要将.csv放入hdfs。 你可以通过shell来做到这一点。
您通过ssh登录到您的群集。然后你使用&#39; put&#39;将.csv放入hdfs。
连接到群集后写入shell:
hdfs dfs&#39;本地文件/ file.csv的路径&#39;将您所选择的hdfs文件夹中的路径放入&#39;
然后您将使用hdfs路径加载文件。