2017-10-11 1 views
0

:스파크 쉘에서 하나의 데이터를 인쇄 할 수 없습니다 나는 스파크 쉘에서 HANA에 연결하고 특정 테이블에서 데이터를 가지고 노력하고 아래 코드와

spark-submit --properties-file /users/xxx/spark-defaults.conf 
    ./spark-shell --properties-file /users/xxx/spark-defaults.conf 
    val sparksqlContext = new org.apache.spark.sql.SQLContext(sc) 
    val driver ="com.sap.db.jdbc.Driver" 
    val url ="jdbc:sap://yyyyyy:12345" 
    val database= "STAGING" 
    val username = "uuuuu" 
    val password = "zzzzzz" 
    val table_view = "STAGING.Tablename" 
    val jdbcDF = sparksqlContext.read.format("jdbc").option("driver",driver).option("url",url).option("databaseName", database).option("user", username).option("password",password).option("dbtable", table_view).option("partitionColumn","INSTANCE_ID").option("lowerBound","7418403").option("upperBound","987026473").option("numPartitions","5").load() 
    jdbcDF.cache 
    jdbcDF.createOrReplaceTempView("TESTING_hanaCopy") 
    val results = sparksqlContext.sql("select * from TESTING_hanaCopy") 
    val resultsCounts = sparksqlContext.sql("select count(*) from TESTING_hanaCopy") 
    val countsval=results.count() 
    resultsCounts.show() 

오류 다음과 같습니다 :

스칼라> resultsCounts.show() org.apache.spark.SparkException : 작업으로 인해 무대 장애로 중단 : 작업 직렬화하지 : java.io.NotSerializableException : com.sap.db.jdbc.topology.Host 직렬화 스택 : - 개체가 직렬화 할 수 없습니다 (클래스 : com.sap. - writeObject 데이터 (클래스 : java.util.ArrayList) - 개체 (클래스 java.util.ArrayList, [yyyyyy : 12345]) - 클래스 : java.util.Hashtable) - 개체 (클래스 java.util.Properties, {databasename = STAGING, dburl = jdbc : sap : // yyyyyy : 12345, 사용자 = uuuuu, 암호 = zzzzzz, 호스트 목록 = [yyyyyy : 12345] }) - 필드 (클래스 : org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions, 이름 : asConnectionProperties, 유형 : 클래스 java.util.Properties) - object (클래스 org.apache.spark.sql. 실행 클래스. 데이터베이스. $ createConnectionFactory $ 1, name : 옵션 $ 1, 유형 : c 아가씨 org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions)

나는 herehere을 제공하는 솔루션을 이해하려고 노력하지만, 위의 코드

답변

0

참고 섹션에서 변경하는 것을 이해할 수 없었다

참고 :이 Blog 게시물에서이 문제를 해결 나는 SPS10 & SPS12 시스템에 대해 하나 JDBC 드라이버 (ngdbc.jar)의 최근 SPS12 버전을 사용하여 불꽃을 테스트했는데 모두 잘 작동하는 에드 것 같다. 이전 버전의 드라이버는 Spark에서 다음 오류를 제공합니다. 'org.apache.spark.SparkException : 작업이 스테이지 실패로 중단되었습니다. 작업이 직렬화되지 않음 : java.io.NotSerializableException : com.sap.db.jdbc.topology.Host'

관련 문제