스파크 SQL JDBC에서 열 이름만 반환
Scala 2.11의 Spark SQL을 사용하여 데이터베이스 테이블을 조회합니다.나는 인터넷에 나와 있는 예를 따라 했다.
사용하고 있는 DB: Ubuntu 14.04 위의 mariadb 5.5 쿼리하는 테이블(SOURCES)에는 다음과 같은 열이 있습니다.
`srcname` char(60) NOT NULL,
`endpoint` char(255) NOT NULL,
`pan` char(60) NOT NULL,
`vid` char(10)
제 코드는 다음과 같습니다.
val sparkSession = SparkSession.builder().master("local[*]").appName("somename").getOrCreate()
val df1 = sparkSession.read
.format("jdbc")
.option("driver", "org.mariadb.jdbc.Driver")
.option("url", url)
.option("dbtable", "SOURCES")
.option("user", username)
.option("password", password)
.load()
df1.show()
이것에 의해, 다음의 출력이 표시됩니다.
+-------+--------+---+---+
|srcname|endpoint|pan|vid|
+-------+--------+---+---+
|srcname|endpoint|pan|vid|
|srcname|endpoint|pan|vid|
|srcname|endpoint|pan|vid|
+-------+--------+---+---+
즉, 데이터를 제공하지 않고 각 행에 대해 열 이름을 반복합니다.내 테이블은 세 줄로 되어 있다.db의 행 수를 변경하려고 시도했지만 그에 따라 출력도 변경됩니다.
또한 다양한 사이트에서 언급되는 다른 방법을 시도했습니다.
val prop = new java.util.Properties
prop.setProperty("user",username)
prop.setProperty("password",password)
prop.setProperty("driver","org.mariadb.jdbc.Driver")
val df2 = sparkSession.read.jdbc(url, "SOURCES", "srcname", 0, 5, 1, prop)
df2.show()
이 경우에도 동일한 출력이 제공됩니다.
나의 스파크 의존관계는 다음과 같습니다.
compile 'org.apache.spark:spark-core_2.11:2.0.0'
compile 'org.apache.spark:spark-sql_2.11:2.0.0'
여기서 무슨 일이 일어나고 있는지 도와줄 사람 있나요?
문제를 해결했다.jdbc 드라이버입니다.
'org.mariadb.jdbc:'mariadb-java-client:1.5.4'
그게 문제의 원인이야mysql 드라이버 사용.
'mysql: mysql-connector-java:5.1.6'
마법처럼 작동한다.
언급URL : https://stackoverflow.com/questions/40547993/spark-sql-jdbc-returning-only-column-names
'source' 카테고리의 다른 글
| Laravel은 "루트가 정의되지 않았습니다"라고 말합니다. (0) | 2022.10.23 |
|---|---|
| 숫자 리터럴의 ULL 접미사 (0) | 2022.10.23 |
| 이 JavaScript 관용어의 기초는 무엇입니까: var self = this? (0) | 2022.10.23 |
| Javascript Array 전달 -> PHP (0) | 2022.10.22 |
| jQuery 직렬화된 폼을 PHP 직렬화 해제하려면 어떻게 해야 합니까? (0) | 2022.10.22 |