1 回答

TA貢獻1799條經驗 獲得超9個贊
您正在嘗試使用 spark 從 SQLite 表導入數據。實際上,在 spark 中,JDBCDialect forSQLite是不存在的。因此,SQLite 類型未按預期匹配,因此出現此異常。
要解決這個問題,您需要通過擴展 Spark 抽象JdbcDialect類來編寫 jdbc 方言,如下所示 -
object SQLiteDialect extends JdbcDialect {
...
}
在這里,您可以從其他可用的方言(例如PostgressDialect )中獲得幫助
現在按照下面提到的步驟進行測試 -
SQLiteDialect
將編譯后的類和伴生對象打包到一個 JAR 中將 JAR 復制到 Spark 二進制安裝中的 jars 文件夾(可選,可能可以在額外的 --jars 參數中設置路徑)
然后在創建 SQLite 表和示例數據后在 spark-shell 中運行以下測試:
org.apache.spark.sql.jdbc.JdbcDialects.registerDialect(org.apache.spark.sql.jdbc.SQLiteDialect)
val jdbcDF = sqlContext.read.format('jdbc').options(url='jdbc:sqlite:/path/to/sqlitedb/test.db',
dbtable = 'the_table',
driver = 'org.sqlite.JDBC').load()
jdbcDF.show()
JdbcDialects.unregisterDialect(org.apache.spark.sql.jdbc.SQLiteDialect)
參考這個線程
貌似有中型博客講SQLite
方言,有很好的解釋,請參考。
添加回答
舉報