我在MariaDB中创建了一个包含2行数据的表“学生”:
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|
+----+
它不是显示行,而是在两个记录中显示列名。
为什么我的结果不正确?任何人都可以帮助我。
答案 0 :(得分:0)
我已经使用其他数据库(如Oracle和Derby)对此进行了测试。他们产生正确的结果。此问题仅适用于MariaDB。