Spark SQL JDBC只返回列名

Spark SQL JDBC只返回列名,jdbc,apache-spark-sql,mariadb,Jdbc,Apache Spark Sql,Mariadb,我正在使用Scala 2.11中的Spark SQL查询数据库表。我遵循了互联网上给出的例子 我使用的数据库:Ubuntu 14.04上的mariadb 5.5 我正在查询的表(源)具有以下列: `srcname` char(60) NOT NULL, `endpoint` char(255) NOT NULL, `pan` char(60) NOT NULL, `vid` char(10) 这是我的密码: val sparkSession = SparkSession.builder().m

我正在使用Scala 2.11中的Spark SQL查询数据库表。我遵循了互联网上给出的例子

我使用的数据库:Ubuntu 14.04上的mariadb 5.5 我正在查询的表(源)具有以下列:

`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|
+-------+--------+---+---+
i、 e.重复每行的列名,但不提供数据。我的桌子有三排。我尝试过改变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()
这也给出了相同的输出

以下是我的spark相关性:

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' 
它就像一个符咒