Spark使用mariadb驱动读取AWS Aurora所有结果数据行都是列名

目录

一、使用mariadb驱动读取AWS Aurora

二、df.show()的内容

三、解决办法


一、使用mariadb驱动读取AWS Aurora

val spark = SparkSession.builder()
            .appName(s"Spark read aurora by mariadb")
            .getOrCreate()

val df = spark.read
   .format("jdbc")
   .option("driver", "org.mariadb.jdbc.Driver")
   .option("url", "jdbc:mariadb://host:port/database")
   .option("user", "username")
   .option("password", "password")
   .option("dbtable", s"(select col1,col2 from table_name) as tmp")
   .load()

df.show()

二、df.show()的内容

+----+----+
|col1|col2|
+----+----+
|col1|col2|
|col1|col2|
|col1|col2|
+----+----+

如上所示,所有的数据行内容都和列名是一样的

三、解决办法

因为使用的AWS的Aurora数据库,所以还是希望使用推荐的mariadb驱动

经过多次尝试,发现是mariadb连接器的问题,改成如下配置,即可得到期望的结果

option("url", "jdbc:mysql://host:port/database")

至于为什么改成mysql连接器就能得到解决,没有深入研究,解决眼前问题最重要,希望有研究过的兄弟不吝赐教,万分感谢。

你可能感兴趣的:(大数据,spark,mariadb,aws)