programing

스파크 SQL에서 JDBC 테이블을 로드하는 동안 잘못된 데이터

testmans 2023. 9. 17. 12:12
반응형

스파크 SQL에서 JDBC 테이블을 로드하는 동안 잘못된 데이터

MariaDB에서 두 행의 데이터를 포함하는 테이블 "학생"을 만들었습니다.

id name      marks
-- --------- -----
1  saptarshi 98
2  sagar     95

JDBC를 사용하여 이 테이블을 spark-sql로 읽고 싶어서 spark-shell을 열고 다음 명령을 실행했습니다.

spark-shell --jars mariadb-java-client-1.5.0-RC1.jar
scala> val url = "jdbc:mariadb://localhost:3306/sparkdb"
scala> val driver = "org.mariadb.jdbc.Driver"
scala> val df = sqlContext.read.format("jdbc").option("url", url).option("driver", driver).option("dbtable", "students").option("user", "cloudera").option("password", "cloudera").load()

scala> df.printSchema
root
|-- id: integer (nullable = false)
|-- name: string (nullable = true)
|-- marks: integer (nullable = true)

스키마가 올바르게 로드되어서 '이름' 열을 표시하고 싶었습니다.

scala> df.select("name").show
+----+
|name|
+----+
|name|
|name|
+----+

행을 표시하는 대신 두 레코드 모두에 열 이름을 표시했습니다.

왜 정확한 결과를 얻지 못합니까?누가 여기서 나를 도와줄 수 있습니까?

Oracle이나 Derby와 같은 다른 데이터베이스에서 테스트해 보았습니다.그들은 정확한 결과를 만들어냅니다.이 문제는 MariaDB에 대해서만 나타납니다.

언급URL : https://stackoverflow.com/questions/38808463/incorrect-data-while-loading-jdbc-table-in-spark-sql

반응형