我使用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文件夹中,而写函数则在/tmp文件夹上查找数据。
发布于 2017-05-30 15:30:56
我也有同样的问题。您需要将.csv放入hdfs中。你可以通过壳来做这件事。
通过ssh登录到集群中。然后使用“put”将.csv放入hdfs中。
连接到群集后,在shell中写入:
hdfs dfs‘本地文件/file.csv’put‘路径到您选择的hdfs中的文件夹’
然后使用hdfs路径加载文件。
https://stackoverflow.com/questions/42535331
复制相似问题