2017-03-01 3 views
3

Sparklyr 라이브러리를 사용하여 R에서 HDFS로 데이터를 읽고 쓰고 있습니다. 데이터 읽기는 예상대로 작동하지만 글을 쓰면 문제가 발생합니다.Sparklyr copy_to fail

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") 

오류 : 누군가가 같은 문제가 발생하여이 문제를 해결하는 방법을 알고

Error: org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://iacchadoopdev01.dap:8020/tmp/Rtmp2gpelH/spark_serialize_62547a7b0f9ad206fd384af04e585deb3a2636ca7b1f026943d4cc1d11c7759a.csv

나요?

쓰기 기능이 HDFS/tmp 폴더의 데이터를 찾는 동안 sdf_copy_to 함수가 데이터를 내 linux/tmp 폴더에 저장하는 이유가있을 수 있습니다.

+0

문제와 관련이 있는지 (아마도 아님) 모르겠지만 'OVERWRITE'가 소문자가 아니어야합니까? –

+0

답변 해 주셔서 감사합니다. 그냥 소문자로 덮어 쓰려고했지만 같은 오류가 발생했습니다. –

+0

'table1' (R 래퍼의 이름) 대신 Spark DataFrame (''dataframe "'?)의 이름으로 시도해 주시겠습니까? –

답변

0

나는 동일한 문제가있었습니다. .csv를 hdfs에 넣어야합니다. 쉘을 통해이 작업을 수행 할 수 있습니다.

ssh를 통해 클러스터에 로그인합니다. 그런 다음 'put'을 사용하여 .csv 파일을 hdfs 파일에 저장합니다. 클러스터에 연결 한 후 셸에서

쓰기 :

넣어 DFS '로컬 파일/file.csv 경로'다음

사용하게 될 '경로는 사용자가 선택한 HDFS에 폴더하는'HDFS hdfs 경로는 파일을로드합니다.