아래와 같은 에러가 발생하는 이슈가 있다.
Caused by: org.apache.spark.SparkException: Unable to create database default as failed to create its directory /home/morris/server/spark/spark-warehouse
at org.apache.spark.sql.catalyst.catalog.InMemoryCatalog.liftedTree1$1(InMemoryCatalog.scala:114)
at org.apache.spark.sql.catalyst.catalog.InMemoryCatalog.createDatabase(InMemoryCatalog.scala:108)
at org.apache.spark.sql.internal.SharedState.<init>(SharedState.scala:99)
at org.apache.spark.sql.SparkSession$$anonfun$sharedState$1.apply(SparkSession.scala:101)
at org.apache.spark.sql.SparkSession$$anonfun$sharedState$1.apply(SparkSession.scala:101)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.sql.SparkSession.sharedState$lzycompute(SparkSession.scala:101)
at org.apache.spark.sql.SparkSession.sharedState(SparkSession.scala:100)
at org.apache.spark.sql.internal.SessionState.<init>(SessionState.scala:157)
... 26 more
Caused by: java.net.ConnectException: Call From localhost/192.168.76.102 to namenode:9000 failed on connection exception: java.net.ConnectException: 연결이 거부됨; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
위의 내용은 데이터 파일을 읽어올 때, 경로가 아래와 같이 일반 url이 적혀있어서 에러가 발생한다.
Dataset<Row> dataset = sparkSession.read()
.format("csv")
.option("header", "true")
.load("/home/morris/data/TestData.csv");
위와 같이 아무것도 적어주지 않으면 default로 hdfs의 namenode에 접속을 한다.
로컬의 파일을 선택할 경우에는 아래와 같이 file:// 을 붙여줘야한다.
Dataset<Row> dataset = sparkSession.read()
.format("csv")
.option("header", "true")
.load("file:///home/morris/data/TestData.csv");
'BackEnd > Spark' 카테고리의 다른 글
[SparkSQL] 한글 컬럼 불러오기 (2) | 2020.05.09 |
---|---|
SparkSQL JDBC 사용해서 데이터 불러오기 (0) | 2020.03.29 |
[Spark Issue] Spark Jersey dependency 충돌 (0) | 2020.03.24 |
log 로 살펴본 Spark 동작 과정 알아보기 프로젝트 (0) | 2020.03.23 |
[Spark]Spark에서 서버의 메모리보다 더 큰 데이터를 불러와서 작업을 할수 있는데 어떻게 할까 ? (0) | 2020.03.22 |