0
나는 스파크 실 클러스터 환경을 설정하고 불꽃 쉘 스파크-SQL을 시도해보십시오 언급saveAsTable 끝
spark-shell --master yarn --deploy-mode client --conf spark.yarn.archive=hdfs://hadoop_273_namenode_ip:namenode_port/spark-archive.zip
한 가지 인 불꽃에서 Windows가 실행
scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc)
scala> val df_mysql_address = sqlContext.read.format("jdbc").option("url", "jdbc:mysql://mysql_db_ip/db").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "ADDRESS").option("user", "root").option("password", "root").load()
scala> df_mysql_address.show
scala> df_mysql_address.write.format("parquet").saveAsTable("address_local")
"쇼"명령이 리턴이 제대로-결과 집합,하지만 "saveAsTable는"실패로 끝나는 : 스파크 쉘이 성공적으로 시작 7. 후, 나는 다음과 같이 명령을 실행합니다. 오류 메시지가 말한다 : /jshen.workspace/programs/spark-2.2.0- :
java.io.IOException: Mkdirs failed to create file:/C:/jshen.workspace/programs/spark-2.2.0-bin-hadoop2.7/spark-warehouse/address_local/_temporary/0/_temporary/attempt_20171018104423_0001_m_000000_0 (exists=false, cwd=file:/tmp/hadoop/nm-local-dir/usercache/hduser/appcache/application_1508319604173_0005/container_1508319604173_0005_01_000003)
내가 기대와 테이블이 하둡 클러스터에 저장하는 것 같다,하지만 당신이 볼 수있는 디렉토리 (C 그 bin-hadoop2.7/spark-warehouse)은 내 Windows 7의 폴더이며 hdfs가 아니라 hadoop 우분투 시스템의 폴더입니다.
어떻게하면됩니까? 고마워, 고마워.
scala> df_mysql_address.write.option("path", "/spark-warehouse").format("parquet").saveAsTable("address_local")
감사를 @philantrovert : 아래 그림과 같이 문제를 제거하는
saveAsTable에 HDFS의 절대 경로를 입력 해 보았습니까? 'saveAsTable ("hdfs : // nn1/user/cloudera/address_local")와 비슷합니다. 12. – philantrovert
당신의 제안에 영감을 받아 @philantrovert에게 감사드립니다. _ "save"_ 작업 전에 _ "path"_ 옵션을 제공하는 올바른 방법을 찾았습니다. _scala> df_mysql_address.write..option ("path", "/ spark-warehouse") .format ("parquet"). saveAsTable ("address_local") _ –