[SCALA] 데이터베이스를 사용하여 JDBC에 스파크 데이터 집합을 쓸 수 없음
SCALA데이터베이스를 사용하여 JDBC에 스파크 데이터 집합을 쓸 수 없음
나는 오라클 데이터베이스 테이블에 내 스파크 데이터 세트를 작성해야합니다. 나는 추가 모드와 데이터 세트 쓰기 방법을 사용하고 있습니다. 그러나 분석 예외를 받고, 스파크 작업을 사용하여 클러스터에서 트리거되었을 때 명령을 spark2을 제출.
나는, JSON 파일을 읽을 수 abcDataset 같은 데이터 세트로 및 세트를 평평하게했다.
버전 스파크 - 2 오라클 데이터베이스 JDBC 드라이버 - oracle.jdbc.driver.OracleDriver 자바 - 언어 프로그래밍
Dataset<Row> abcDataset= dataframe.select(col('abc').....{and other columns};
Properties dbProperties = new Properties();
InputStream is = SparkReader.class.getClassLoader().getResourceAsStream("dbProperties.yaml");
dbProperties.load(is);
String jdbcUrl = dbProperties.getProperty("jdbcUrl");
dbProperties.put("driver","oracle.jdbc.driver.OracleDriver");
String where = "USER123.PERSON";
abcDataset.write().format("org.apache.spark.sql.execution.datasources.jdbc.DefaultSource").option("driver", "oracle.jdbc.driver.OracleDriver").mode("append").jdbc(jdbcUrl, where, dbProperties);
예상 - 데이터베이스에 쓰기하지만 아래의 오류를 얻기에 -
org.apache.spark.sql.AnalysisException: Multiple sources found for jdbc (org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider, org.apache.spark.sql.execution.datasources.jdbc.DefaultSource), please specify the fully qualified class name.;
at org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:670)
내가 클러스터에서이 작업을 실행하고, 또는 단계가없는 것처럼 우리는 스파크의 추가 속성이 명령을 제출 설정해야합니까?
해결법
-
==============================
1.당신은 당신이 RDBMS에 스파크에서를 통해 JDBC를 작성할 때 abcDataset.write.jdbc 또는 abcDataset.write.format ( "JDBC") 중 하나를 사용해야합니다.
당신은 당신이 RDBMS에 스파크에서를 통해 JDBC를 작성할 때 abcDataset.write.jdbc 또는 abcDataset.write.format ( "JDBC") 중 하나를 사용해야합니다.
from https://stackoverflow.com/questions/56151363/not-able-to-write-spark-dataset-to-database-using-jdbc by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스칼라에 로그인 (0) | 2019.11.25 |
---|---|
[SCALA] 좋은 scalaz 소개 [마감] (0) | 2019.11.24 |
[SCALA] 카프카 소비자는 이벤트를 반환하지 (0) | 2019.11.24 |
[SCALA] 아파치 스파크 :하지 않을 때는 mapPartition 및 foreachPartition를 사용하는? (0) | 2019.11.24 |
[SCALA] JSON 파일이 아닌 폴더로 RDD 데이터를 저장하는 방법 (0) | 2019.11.24 |