使用 Apache Spark 读取 Microsoft Access .mdb/.accdb 文件时出现问题

问题描述

我正在尝试使用 JDBC 驱动程序从 Apache Spark 2.4 读取 Microsoft Access .mdb 和 .accdb 文件ucanaccess 5.0.1。我在这样做时面临两个主要问题。

  1. 当结果包含非字符串字段类型时抛出异常:Double、Timestamp、Integer、Boolean 等。

function triggerMix() {
  var hour = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('title').getRange('AH7').getValue();
  var autoMix = ScriptApp.newTrigger('mix1')
    .timeBased()
    .atHour(hour)
    .everyDays(1)
    .create();
}
  1. 一旦只选择了字符串字段,它就会在结果中为字段值重复列名。 (但是它为计数查询提供了准确的结果)
Caused by: java.sql.sqlSyntaxErrorException: incompatible data type in conversion: from sql type CHaraCTER to java.lang.Boolean,value: IsActive
$./bin/spark-shell --packages net.sf.ucanaccess:ucanaccess:5.0.1

附言

  • 使用 .mdb 和 .accdb 文件类型的体验相同
  • 尝试使用 Apache Spark 3.0 并遇到相同的问题
  • 尝试了不同的 ucanaccess 版本
  • 我使用 ucanaccess 创建了一个简单的 Java 项目(没有 spark)。效果很好。
  • 我尝试使用带有 Postgres 驱动程序和 Postgres 数据库的 Spark JDBC,并且工作正常。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)